原码、反码、补码
1、二进制的最高位是符号位:0表示正数,1表示负数
2、正数的原码、反码、补码都一样
3、负数的反码 = 它的原码符号位不变,其他位取反
4、负数的补码 = 它的反码 + 1,负数的反码 = 负数的补码 - 1
5、0的反码、补码都是0
6、java没有无符号数,换言之,java中的数都是有符号的
7、再计算机运算的时候,都是以补码的方式来运算的
8、当我们看运算结果的时候,要看它的原码
位运算符
按位与(&):两个全为1,结果为1,否则为0
按位或(|):两位有一个为1,结果为1,否则为0
按位异或(^):两位一个为0,一个为1,结果为1,否则为0
按位取反(~):0变1,1变0
算术右移(>>):低位溢出,符号位不变,并用符号位补溢出的高位
算术左移(<<):符号位不变,低位补0
逻辑右移(>>>):也叫无符号右移,运算规则是:低位溢出,高位补0