java_基础_二进制、位运算、移位运算符

来源:互联网 发布:网络棋牌频道于爽 编辑:程序博客网 时间:2024/04/28 06:19

一、数据在内存中的储存

1、1字节=8位
2、第一位为符号位,1为负,0为正
3、数据在内存中用字节表示

二、原码,反码,补码的解释

(对于有符号的而言)
1、证书的原码反码补码都一样
2、负数的反码=他的原码符号位不变,其他取反
3、负数的补码=反码+1
4、0的反码补码都为0
5、java中没有无符号数
6、计算机在运行时都是以补码的方式来运算的

三、位运算符

1、java中共有4个位运算,分别是
&(按位与) :两位全为1,结果为1
|(按位或):两位有一个为1,结果为1
^(按位异或):两位一个为0,一个为1,结果为1
~按位取反:0->1,1->0
2、计算方法:
1)获得数的补码
2)根据上述计算(逢2进1变零)

四、移位运算符

1、算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位
2、算数左移>>:符号位不变,低位补0
3、逻辑右移>>>:低位溢出,高位补0
例如:
1>>2(1表示被移数,2表示移动位数)
先写出1的补码为
0000000000000000000000000000001
移动第一次
0000000000000000000000000000000
移动第二次
0000000000000000000000000000000
为零

-1>>2
-1的补码
1111111111111111111111111111111
移动后
1111111111111111111111111111111
转化成原码
1000000000000000000000000000001
为-1

0 0