问答题X 纠错
对于结果为±1x.xx……x的情况,需要进行右规。右规时,尾数右移一位,阶码加1。右规操作可以表示为:Mb←Mb×2-1,Eb←Eb+1。右规时注意以下两点:
1.尾数右移时,最高位“1”被移到小数点前一位作为隐藏位,最后一位移出时,要考虑舍入。
2.阶码加1时,直接在末位加1。
对于结果为±0.00……01x……x的情况,需要进行左规。左规时,数值位逐次左移,阶码逐次减1,直到将第一位“1”移到小数点左边。假定k为结果中“±”和左边第一个1之间连续0的个数,则左规操作可以表示为:Mb←Mb×2k,Eb←Eb–k。左规时注意以下两点:
1.尾数左移时数值部分最左k个0被移出,因此,相对来说,小数点右移了k位。因为进行尾数相加时,默认小数点位置在第一个数值位(即:隐藏位)之后,所以小数点右移k位后被移到了第一位1后面,这个1就是隐藏位。
2.执行Eb←Eb–k时,每次都在末位减1,一共减k次。
你可能喜欢
问答题
问答题
问答题
问答题
问答题
问答题
以下是两段C语言代码,函数arith()是直接用C语言写的,而optarith()是对arith()函数以某个确定的M和N编译生成的机器代码反编译生成的。根据optarith(),可以推断函数arith()中M和N的值各是多少?