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