1000 0000表示-128是人为规定的。
因为8位2进制中,存在 “-0”(1000 0000)和"0"(0000 0000),虽然“-0”也是“0”,但根据正、反、补码体系,“-0”的补码和“+0”是不同的,这样就出现两个补码代表一个数值的情况。为了将补码与数字一一对应,所以人为规定“0”一律用“+0”代表。同时为了充分利用资源,就将原来本应该表示“-0”的补码规定为代表-128。
求负数的补码的方法是:将该数的绝对值的二进制形式,按位取反再+1.
|-128|=128; (128)十进制=(10000000)二进制; 取反:01111111 +1:10000000 就得到结果了
很多人并不理解补码。补码就是同余啊。1000000是正128你知道吧,正负128模256是同余的。加减乘可以直接算也是同余的定理决定的,而不是凑出来的巧合。