1.位运算
1.1 原码、反码、补码
*规则:
1.二进制的最高位是符号位:0表示正数,1表示负数
2.正数的原码,反码,补码都一样(三码合一)
3.负数的反码 = 他的原码符号位不变,其它位取反(0->1,1->0)
4.负数的补码 = 它的反码 + 1,负数的反码 = 负数的补码 - 1
5.0的反码,补码都是0
6.Java没有无符号数
7.在计算机运算的时候,都是以补码的方式来运算的
1.2 位运算符
*java中有7个位运算(&、|、……、~、>>、<<和>>>)
*按位与& : 两位全为1,结果为1,否则为0
*按位或| :两位有一个为1,结果为1,否则为0
*按位抑或^:两位一个为0,一个为1,结果为1,否则为0
*按位取反~ : 0->1,1->0
算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位*(相当于除以2)**
算术左移<<:符号位不变,低位补0*(相当于乘以2)**
*>>>逻辑右移也叫无符号右移,运算规则:低位溢出,高位补0