1.源码 2.反码 3.补码java
注意的规则:spa
1.正数的三个码都是一致的,不须要转换源码
2.负数必须转换成补码才能运算计算机
3.计算机真正参与运算的是补码移动
4.在java中全部的数字都是由符号的, 符号位0正数,1负数co
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