1个字节占8位。1位表示1个0或者1.1个字节表示的无符号数从0-2^8-1(255),一共256个数。

下面是一个有意思的实验:

在计算器中,十进制写入-1然后选择二进制,发现变成了11111111(后面选择字节)然后再选择十六进制,发现变成了FF然后再选择十进制,变成了255.

当初我们的十进制数是-1,现在经过一系列的变换,反而成了255.

所有的数值在计算机中都以补码的形式存在。正数的补码=反码=原码。负数的补码=原码(除符号位外)按位取反+1

 

有符号整数  二进制原码  二进制补码 十六进制 无符号十进制 如何变成负数

  -1         10000001    11111111    FF        255           255-2^8=-1

  -2         10000010    11111110    FE        254           254-2^8=-2

  -3         10000011    11111101    FD        253           253-2^8=-3

 

(-1)+(-2)=-3

二进制补码表示:

 

如果自己写代码计算从下位机得到的补码的话,先把补码换算成无符号的十进制数(假设占1个字节,根据实际情况来计算)。然后该数-2^8即可。