为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何求出补码的位数为n和n+1时-2^n-1的补码表示?

请问如何求出补码的位数为n和n+1时-2^n-1的补码表示?

PHP
明月笑刀无情 2019-03-15 17:37:14
这两天在复习计算机组成原理,看到补码部分,把我搞晕了。。求大佬们帮一下。。书中有个例题是这样描述的:求出补码的位数为n时-2^n-1的补码表示当补码的位数为n位时,-2^n-1=< X真 <2^n-1当补码的位数为n位时,其模为2^n.[-2^n-1]补 = 2^n-2^n-1 = 2^n-1 = 1 0...0 (n-1个0)(mod 2^n) 这个公式的后半部分是什么意思啊?前半部分我知道是根据 X真 = 2^n + X真推导出来的,可是后面的2^n-2^n-1为什么等于2^n-1?还有最后的1 0...0(n-1个0)是怎么得出来的?或者说为什么这样写?求各路大神指教,我找了很多视频,都是只教怎么求反码、补码,没有解释这个公式的...
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

取 n = 8, 你的问题就变为 -128 的补码为什么 是 1000 0000

忘掉 所谓的补码计算公式吧 -> (正数不变,负数除符号位之外,其余各位取反,最后+1)

补码的本质 同余

同余 运算了解哇?

 1 ≡ 257 (mod 256) 
 0 ≡ 256 (mod 256)
-1 ≡ 255 (mod 256)   ->  -1 的补码是 255: 1111 1111-2 ≡ 254 (mod 256)   ->  -2 的补码是 254: 1111 1110

所以 
-128 ≡ 128 (mod 256) -> -128 的补码是 128: 1000 0000




查看完整回答
反对 回复 2019-03-15
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

说的远一点,数轴上任何一个整数都可以通过加减 256的整数倍 跳到0-255之间,它最后落到的位置就是它的补码

比如计算机存储 -1, 实际就是存储的 255:1111 1111


查看完整回答
反对 回复 2019-03-15
  • 2 回答
  • 0 关注
  • 1297 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信