请稍等 ...
×

采纳答案成功!

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

右移的时候符号位的变化依据是什么呀

比如说
图片描述这里符号位置由10变为11
图片描述这里由01变为了00
我想提问就是符号位的值的变化是依据什么,什么时候填充的位1什么时候位0。
图片描述就是这个位置的值的变化

正在回答

1回答

先给同学点个赞,提问问题所提供的信息非常全面,让人一目了然,好的提问方式可以事半功倍,效率倍升。

回到这个问题,简单的说这就是约定的规律。作为双符号位去判断溢出,无非是01、10两种方式,当01的时候右移就规定补为00,当时10的时候就规定的11。

但作为一名好的老师,我希望同学知其然也知其所以然,为什么这样约定的?下面我们来论证一下,由于情况有限,我们可以直接枚举两种情况。(以下的内容可以作为拓展去理解)

先是01的情况,对于双符号位为01,运算的两个数的符号位只可能是00,也就是两个都是正数,所以双符号位为01的情况属于正数溢出,所以右移,把符号位设为00,阶码+1是合理的。

然后是10的情况,对于双符号位10,运算的两个数的符号位只可能是11,也就是两个都是负数,所以双符号位为10的情况属于负数溢出,所以右移,把符号位设为11,阶码+1也是合理的。

希望对你有所帮助。

1 回复 有任何疑惑可以回复我~
  • 提问者 qq_乔哥哥_0 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-10-31 09:06:21
  • 太棒了
    回复 有任何疑惑可以回复我~ 2020-03-02 18:40:22
  • 相加出现双符号01是两个正数相加出现了进位,00变成01
    相加出现双符号10也是两个负数相加出现了进位,结果是110,舍去进位就变成了10.
    回复 有任何疑惑可以回复我~ 2020-03-02 18:48:01
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信