二进制补码表示法的实现

来源:4-3 有符号数与无符号数

慕婉清7331720

2019-12-10

例子3:x=-7,计算x的二进制原码和补码

源码:x = 1,0111
补码:x = 1,1001

是否是这样计算的:
我们使用重复相除法将十进制的7转换为二进制 是111,因为n表示x的位数(这里n的值为什么要设置为4???)所以,我们需要补齐位数 也就是0111,还需要一个符号位,因而源码等于1,0111.
计算补码的过程:2^5 - 7 = 32 - 7 = 25; 将25转换为二进制 也就是11001 (那么视频中为何要表示 2 ^5 - 7 = 100000 - 0111,表示成二进制数相减 有何意义);接着 因为 n等于4 计算出的结果 首位也是1 所以补码就等于 11001(可是只要是一个整数 使用重复相除法 最后商0 必定是余1的 这样是不是将计算出的首位当作符号位 感觉有点牵强)

恳请老师解答疑惑.谢谢

写回答

1回答

咚咚呛

2019-12-10

我把括号内的当做是问题哈。

  1. 为什么n设置为4,一般做二进制的题,都会把位数设置为4、8、16这样的位数,所以这里设置为4。

  2. 表示为二进制相减之后可以用二进制减法去做,和十进制减法是类似的,当然你这样计算也没有错。

  3. 最后一个“只要是一个整数 使用重复相除法 最后商0 必定是余1的 ”,这个定论是怎么来的?不正确。

0
7
咚咚呛
回复
慕婉清7331720
你先别管二进制,你回想一下十进制里面的除法,如果余数为0,那还需要继续计算下去吗?这里是一样的原理。
2019-12-12
共7条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程