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

这两天在复习计算机组成原理,看到补码部分,把我搞晕了。。求大佬们帮一下。。书中有个例题是这样描述的:
求出补码的位数为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.8k
1 个回答

取 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


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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题