在一个8位二进制的机器中,补码表示数的范围是-128到+127.为什么是+127呢,我算的是+128,求解
在一个8位二进制的机器中,补码表示数的范围是-128到+127.为什么是+127呢,我算的是+128,求解
日期:2019-05-27 10:04:47 人气:1
数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为
(-127~-0
+0~127)共256个.
?
有了数值的表示方法就可以对数进行算术运算.但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下:
假设字长为8bits
(
1
)?10-?
(
1
)10?=?
(
1
)10?+
(
-1
)10?=
?(
0
)10