首个数字(0/1)为符号位表示正负号,0为正号,1为负号。
正数:正数反码,补码与原码相同
eg.+127
原码 **0**000 0000 0111 1111
反码 **0**000 0000 0111 1111
补码 **0**000 0000 0111 1111
负数:反码和补码符号位不变,反码后面二进制数逐位取反(0->1, 1->0)
补码=反码+1
eg.-127
原码 **1**000 0000 0111 1111
反码 **1**111 1111 1000 0000
补码 **1**111 1111 1000 0001
127=1*2^0^+1*2^1^+1*2^2^+1*2^3^+1*2^4^+1*2^5^+1*2^6^,即0000 0000 0111 1111
按位取反~
~n=-(n+1)