java_基础位运算
#原码、反码、补码
对于有符号而言:
1、二进制的最高位符号位:0表示正数,1表示负数 (看最左边的那一个数)
2、正数的原码、反码、补码都一样
3、负数的反码 = 它的原码符号位不变,其他位取反
4、负数的补码 = 它的反码 +1 , 负数的反码 = 负数的补码 -1
5、0的反码,补码都是0
6、在java中没有无符号数 (JAVA中的数都是有符号的)
7、在计算机运算的时候,都是以补码的方式来运算
8、当我们看运算结果的时候,要看他的原码
/*
正数2的原码:
00000000 00000000 00000000 00000010
负数2的原码:
10000000 00000000 00000000 00000010
// 最左边的数代表的是正数还是负数
-2的反码: 11111111 11111111 11111111 11111101
-2的补码: 11111111 11111111 11111111 11111110
*/
#位运算
算术右移 >> :低位溢出,符号位不变,并用符号位补溢出的高位
算术左移 <<:符号位不变,低位补0
" >>> " 逻辑右移,也称为 无符号右移,运算规则 ( 低位溢出,高位补0 )
注意:无 “ <<<符号”``