关于-128和+128的问题

这是-128的补码表示。0没有正负之分;如果不引进补码的概念,计算机计算的结果还真会出现+0、-0的问题,引进了补码的概念就没有这个问题了。上面这个数就是-128,是一个字节能表示的最小的有符号数。它也符合求补码的规则:符号位不变,数据位求反+1。也有一种观点认为-128这个数特别,没有反码与补码。不管怎样,计算机里好多东西都是规定,只要运作起来顺畅就是了。不然,下数的原码、反码、补码都一样你能理解吗?取反了一样,加一了还一样,不可思议吧?这也是规定。有些边缘问题先记住,慢慢理解。这个数是不是-128的补码,可以加一个+128看是否为0来验证。位一个字节已不能表示有符号数+128了,那就要用两个字节,+128就是0000000010000000;-128也要扩展为两个字节,扩展原理是用符号位填满扩展字节(+128扩展也是用符号位填满扩展字节,它的符号位是0),就是1111111110000000。0000000010000000+1111111110000000=0。

你可能感兴趣的:(关于-128和+128的问题)