一个数如果为正,则它的原码、反码、补码相同;
一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1。
为了简单起见,我们用1个字节来表示一个整数。
+7的原码反码补码为: 00000111
-7的原码为: 10000111
-7的反码为: 11111000
-7的补码为: 11111001
补码
已知一个负数的补码,将其转换为十进制数,步骤:
1、先对各位取反;
2、将其转换为十进制数;
3、加上负号,再减去1。
例如:
11111010,最高位为1,是负数,先对各位取反得00000101,转换为十进制数得5,加上负号得-5,再减1得-6。
二进制位操作符:
& 按位与 按位与,只有壹(1)壹(1)为1。
| 按位或 按位或,只有零(0)零(0)为0。
^ 按位异或 按位异或,只有零(0)壹(1)或壹(1)零(0)为1。
~ 按位取反 对二进制数按位取反,即0变成1,1变成0。
三个移位运算符
左移:<<
带符号右移:>>
无符号右移:>>>
数 x x<<2 x>>2 x>>>2
17 00010001 00 01000100 00000100 01 00000100 01
-17 11101111 11 10111100 11111011 11 00111011 11