一个数的原码和补码
一个数如果为正,则它的原码、反码、补码相同;
?
一个数如果为负,则符号位为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
?