采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
比如说这里符号位置由10变为11这里由01变为了00 我想提问就是符号位的值的变化是依据什么,什么时候填充的位1什么时候位0。就是这个位置的值的变化
先给同学点个赞,提问问题所提供的信息非常全面,让人一目了然,好的提问方式可以事半功倍,效率倍升。
回到这个问题,简单的说这就是约定的规律。作为双符号位去判断溢出,无非是01、10两种方式,当01的时候右移就规定补为00,当时10的时候就规定的11。
但作为一名好的老师,我希望同学知其然也知其所以然,为什么这样约定的?下面我们来论证一下,由于情况有限,我们可以直接枚举两种情况。(以下的内容可以作为拓展去理解)
先是01的情况,对于双符号位为01,运算的两个数的符号位只可能是00,也就是两个都是正数,所以双符号位为01的情况属于正数溢出,所以右移,把符号位设为00,阶码+1是合理的。
然后是10的情况,对于双符号位10,运算的两个数的符号位只可能是11,也就是两个都是负数,所以双符号位为10的情况属于负数溢出,所以右移,把符号位设为11,阶码+1也是合理的。
希望对你有所帮助。
非常感谢!
太棒了
相加出现双符号01是两个正数相加出现了进位,00变成01 相加出现双符号10也是两个负数相加出现了进位,结果是110,舍去进位就变成了10.
登录后可查看更多问答,登录/注册
编程之前先学这门课,系统补足计算机基础知识,夯实编程地基
3.4k 17
1.7k 14
1.2k 13
1.3k 11