java学习笔记之位运算符
java的位运算符主要针对二进制数的位进行逻辑运算,主要包括以下几种的位运算符
1、与运算符(&)
与运算符的使用规律是两个操作数中位为1的时候结果为1,否则都是0,例如 3&5=1
3对应的二进制数是0011 5对应的二进制数是0101,所以根据与运算的规则,3&5得出的结果是0001,转换成十进制就是1
2、或运算符(|)
或运算符的的使用规则是两个位中只要任意一个里面有一,那么结果为1,也就是说只有当两个位都为0的时候结果才为0,例如 3|5=7
根据或运算符的规则,3|5的记过是0111,转换成十进制就是 7
3、非运算符(~)
非运算符是针对一个数进行操作的,它的使用规则是将一个数的二进制数全部取反,0变成1,1变成0,例如 ~5=-6
5对应二进制数是0101,因为计算机内部表示数的字节单位是定长的,如8、16、32 位,不够的0补位。所以5对应的二进制数应该是 0000 0101,
~5 = 1111 1010,最高是符号位,所以1111 1010代表的是个负数,先将1111 1010 减1 变成1111 1001 ,再取反变成 0000 0110=6,所以~5=-6
4、异或运算符(^)
异或运算符的使用规则是两个操作数的位中,相同为0,不同为1,所以3(0010)^5(0101)=7(0111)
5、左移运算符(<<)
左移运算符是针对一个数进行操作的,运算规则是将一个数的二进制数整体向左移,末尾用0补上,所以 5 << 1 = 10 5 << 2 = 20
5对应的二进制是0101,左移一位就变成了 1010=10 左移两位就变成了 0001 0100 = 20,所以左移多少位就是把原来的数乘以2的多少次方
6、右移运算符(>>)
右运算符与左运算符相反,是将一个数的二进制数整体右移,例如 5>>1 = 2,5对应的二进制数是0101,右移一位就变成了0010=2,当数的本身小于2的n次方的时候,右移n位结果都是0,例如5<2*2*2,所以5 >>3 = 0
7、又移运算符(>>>)
>>>运算符和>>的使用规则基本一样,但是>>>运算符左后最高位都是用0标识
java学习笔记之位运算符的更多相关文章
- Java学习笔记——关于位运算符的问题
我就之直接贴图了!不想排版了! 有什么问题,欢迎大家指出,帮助我提高,谢谢!
- Java学习笔记三:运算符
1.算术运算符: GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac01.java + - * / ...
- Java学习笔记四——运算符
算术运算符 加减乘除(+.-.*./)就不说了. 求余运算符% 描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数 注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- Java学习笔记心得——初识Java
初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开 ...
- 20145231第二周Java学习笔记
20145231 <Java程序设计>第2周学习总结 教材学习内容总结 本周的学习采用的依然是先看课本,再看视频,然后实践敲代码,最后根据学习笔记总结完成博客. 第三章:基础语法 知识点比 ...
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- Go语言学习笔记四: 运算符
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...
随机推荐
- 特别注意: range.Text.ToString(); 和 range.Value2.ToString(); 的区别
如果Excell的单元格里面是日期,前面显示2015年05月10日:后面的显示42134 也就是说:Text 和Value2的不同. using System; using System.Data; ...
- 「小程序JAVA实战」运行微信官方demo(四)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-04/ 微信官方小程序的demo 介绍 https://mp.weixin.qq.com/cgi-b ...
- JQuery UI Datepicker中文显示的方法
出自:http://www.aimks.com/method-to-display-the-jquery-ui-datepicker-chinese.html Query UI Datepicker这 ...
- Oracle11gR2_ADG管理之resinstate实战
主库上打开闪回 SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ YES 模拟断电 SQL> ...
- coprime Sequence
Do you know what is called ``Coprime Sequence''? That is a sequence consists of nn positive integers ...
- Shell脚本语法---在Makefile等文件…
1. Shell脚本语法 1.1. 条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Sta ...
- angularJS学习(三)——搭建学习环境
1.安装Node.js 和Testacular 1.1. 安装Node.js及配置部分,在另一篇博文:node.js的安装里面讲到了,地址是:http://www.cnblogs.com/tianxu ...
- 【HDU4966】GGS-DDU
题意 有n种科目,每个科目都有一个最高的等级a[i].开始的时候,每个科目的等级都是0.现在要选择一些课程进行学习使得每一个科目都达到最高等级.这里有m节课可供选择.对于每门课给出L1[i],c[i] ...
- jQuery--基础知识速查表
一.jQuery选择器 选择器 实例 选取 * $("*") 所有元素 #id $("#lastname") id="lastname" 的 ...
- 用conda创建一个tensorflow 虚拟环境
创建your——user——name = tensorflow 的虚拟环境 xinpingdeMacBook-Pro:~ xinpingbao$ conda create -n tensorflow ...