1.源码 2.反码 3.补码
注意的规则:
1.正数的三个码都是一致的,不需要转换
2.负数必须转换成补码才能运算
3.计算机真正参与运算的是补码
4.在java中所有的数字都是由符号的, 符号位0正数,1负数
5.符号位就是最高位,也是最左边的一位
6.负数的反码=符号位不变+其他位取反
7.负数的补码=反码+1
算数右移和算数左移
算数右移:
>>:位移的方向,右
1/2/3……:位移的位数
1.正数符号位不变
2.低位溢出删除
3.高位补0
4.负数先转换成补码再进行算数右移动运算
算数左移:
1.符号位不变
2.高位溢出删除
3.低位补0
逻辑右移,没有逻辑左移:
1.不管符号位
2.低位溢出删除
3.高位补0
位运算:
& | ^ ~
1.&按位与:两位都是1,结果才是1
2.|按位或:两位有一位是1,结果就是1
3.^按位异或:两位必须一个为0,一个为1,结果才是1
4.~按位取反:只能是一个表达式使用,
(01.源码全部取反02.转化成反码03.转换成补码)
正数的按位取反,等于自身的负数-1,负数的按位取反,等于自身的绝对值-1