JavaSE学习(9) 二进制、位运算符、移位运算符

来源:互联网 发布:网络七层协议工作原理 编辑:程序博客网 时间:2024/04/29 23:21

二进制:原码反码补码

对于有符号的而言:

1)二进制的最高位是符号位:0表示正数,1表示负数

2)正数的原码、反码、补码都一样

3)负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)

4)负数的补码=它的反码+1

5)0的反码,补码都是0

6)java没有无符号数,换言之,java中的数都是有符号的

7)在计算机运算的时候,都是以补码的方式来运算的。

java中有4个位运算,分别是“按位与&、按位或|、按位异或^,按位取反”,运算规则:

按位与&:两位全为1,结果为1

按位或|:两位有一个为1,结果为1

按位异或^:两位一个为0,一个为1,结果为1

按位取反:0->1,1->0        

~2  取反  (不涉及符号位) 

2&3=2

2|3=3

2^3=1

java中有3个移位运算符:

>>、<<算术右移和算术左移

运算规则:

>>算术右移:低位溢出,符号位不变,并用符号位补溢出的高位

<<算术左移:符号位不变,低位补0


>>>逻辑右移,运算规则是:低位溢出,高位补0


0 0