请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

二进制补码表示法的实现

例子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回答

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

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

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕婉清7331720 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-12-10 23:47:41
  • 提问者 慕婉清7331720 #2
    感谢老师,对于第三个问题的结论 我是这样想的 整数分为 奇数和偶数 用重复相除法 举个例子 对于偶数2  2除以2商1余0 因为要保证商为0才结束 因为再用1除以2商0余1 ;对于奇数3 3除以2商1余1 再将1除以2商0余1  不论是奇数还是偶数都是余1的。
    回复 有任何疑惑可以回复我~ 2019-12-10 23:51:27
  • 咚咚呛 回复 提问者 慕婉清7331720 #3
    奇数部分没有问题,偶数部分,2除以2商1余0了,不需要保证商为0才结束。这个除法迁移到十进制也是一样的,当余数为0了,就不用继续再除了。需要注意。
    回复 有任何疑惑可以回复我~ 2019-12-10 23:55:21
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信