十进制数128和-128的二进制如何表示?
貌似128的二进制数是"10000000",而-128二进制数的最高位用“1”表示负数,如何来表示?
计算机中负数用补码表示。
8位二进制的原值表达范围为:-127至127
共有256个组合序列 0000 0000 至1111 1111 。
+128的原值在8位中是表达不出来的。
下面从两个角度理解-128的补码为什么是1000 0000.
(1)从补码的意义上去理解
因为:256-128=256+(-128)的补码 --机器中只有加法。减法会变成补码的加法。
而 256-128=128
所以 256+(-128)的补码=128
所以 (-128)的补码=256-128
=128
数学上, 128=1000 0000
故规定-128的补码为 1000 0000
首先你要确定这个128是什麽数据类型?char,short还是int
char类型没有128,只有-128
char中的二进制码10000000表示的是-128,所以char类型取值范围是 -128到127,不能表示128。最高位1表示负数