原码 反码 补码
原码
正数的原码最高位是0 负数的原码最高位是1
例如:+7 0 0000111
-7 1 0000111
反码
正数的反码与原码相同 负数的反码相比原码 符号位不变,数值位取反
例如:
-5
原码:1 0000101
反码:1 1111010
补码
正数的补码与原码相同 负数的补码是在反码的基础上+1
例如:
-5
反码:1 1111010
补码:1 1111011
逻辑运算符
& | ^
& 逻辑与 : 有false则false。
| 逻辑或 : 有true则true。
^ 逻辑异或 : 相同为false,不同为true。
位运算符(所有运算都是以补码为基础)
& 位与 有0则0
| 位或 有1则1
^ 位异或 相同则0,不同则1
~ 按位取反 0变1,1变0
( ^的特点:一个数据位异或两次,该数本身不变 )
<< 左移 左边最高位丢弃,右边补齐0
>> 右移 最高位是0,左边补齐0;最高为是1,左边补齐1
>>> 无符号右移 无论最高位是0还是1,左边补齐0