十进制->二进制
正数:正常
负数: 补码 (各位取反,然后+1)
二进制->十进制
正数:正常
负数:先-1,然后各位取反 (连着符号位 都取反,因为正数必带符号位0)
符号位: 最高位 正数0 负数 1
比如int 32位,最高位是符号位,正数表示0,负数表示1,正数最大能表示的范围 【0,2^31-1】 而负数【-2^31,-1】
所以负数比正数能表示的最大绝对值+1
e.g. 4位
正数: 负数
0000 =0 1000 -8
0001 =1 1001 -7
0010 =2 1010 -6
0011 1011
0100 1100
0101 1101
0110 1110
0111 =7 1111 -1