这两天在复习计算机组成原理,看到补码部分,把我搞晕了。。求大佬们帮一下。。书中有个例题是这样描述的:求出补码的位数为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 回答
![?](http://img1.sycdn.imooc.com/5458477300014deb02200220-100-100.jpg)
哆啦的时光机
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
![?](http://img1.sycdn.imooc.com/5859e2d50001f6bb01000100-100-100.jpg)
qq_笑_17
TA贡献1818条经验 获得超7个赞
说的远一点,数轴上任何一个整数都可以通过加减 256的整数倍 跳到0-255之间,它最后落到的位置就是它的补码
比如计算机存储 -1, 实际就是存储的 255:1111 1111
- 2 回答
- 0 关注
- 1297 浏览
添加回答
举报
0/150
提交
取消