请教一个溢出检测的问题
时间:12-12
整理:3721RD
点击:
两个字长不一样的二进制数相加,例如8位(数据范围[-128,127])+4位(数据范围[-8,7]),结果放在4位宽度的数据中,请问如何判断结果有没有溢出(不在[-8,7]范围中)呢?谢谢指教
两个数都符号位扩展成9位
再相加得到一个9位符号数
再判断是否在[-8,7]的范围
谢谢答复。
我现在想的是,如果不做符号扩展(4位的那个是肯定要扩展到8位的),即两个8位直接相加,然后判断相加结果的第四位跟第五位如果不一样(sum[4]^sum[5]),即表示放到4位的结果会有溢出,同时第五位表示的是正溢(sum[5]== 0)还是负溢(sum[5]==1)