是不是任意补码为数值部分的值加上-128就是真值 如补码10000001的真值为-127
问题描述:
是不是任意补码为数值部分的值加上-128就是真值 如补码10000001的真值为-127
答
八位二进制代码,范围是 255,以补码形式,可代表真值:-128~+127.
八位的补码,在 127,即小于 128 时,直接代表零和正数.
该补码,就是该数的真值.
八位的补码,在 128~255,即大于 127 时,就代表负数 -128 -1 了.
用这个补码,加上-256,即可得出真值.
如补码 1000 0001,即 129,加上-256,即可得出真值为-127.
如补码 1000 0000,即 128,加上-256,即可得出真值为-128.
如补码 1111 1111,即 255,加上-256,即可得出真值为-1.
------
如果是负数,求补码,加上 256 即可.
如,真值是 -1,补码就是 256 - 1 = 255,这就是 -1 的补码.
做这些变换,根本不用二进制,也不用《求反加一》这些麻烦事.那是不是负数的补码只要看后7位数的值加上-128也是一样的如 补码10000001后七位是0000001 它的值为1 ,1+(-128)=-127这样行不行后7位数的值加上-128也是一样的,对。你少用了一位,即最高位。这个最高位,就是 -128。剩下七位,加上 -128,正好。