定点数加减运算的溢出判定,可以通过___和___的方法判定。
发布网友
发布时间:2022-05-03 02:24
我来回答
共2个回答
热心网友
时间:2023-09-17 15:16
定点数加减运算的溢出判定,可以通过___单符号位判溢方法 ___和___双符号位进位判溢方法 ___的方法判定。
定点数加减
目前计算机普遍使用补码实现定点数的加减运算。
1.加减运算方法:
根据补码的设计规则,任意的绝对值相同的负数和正数,负数是正数的反码加1,所以绝对值相同的负数和正数相加,刚刚好结果就是为全0(最高位进一位,抛弃)。然后对照下补码表,可以发现基于这种设计,两数相加时可以直接将符号位也参与运算,得出的结果也包含符号位。
2.溢出判断:
(1)单符号位判溢方法
相加溢出的情况只有两种:
正数和正数相加,结果为负数,发生溢出。
负数和负数相加,结果为正数,发生溢出。
为什么正数和负数相加不会溢出呢?是因为正数和负数的最值的绝对值都是相同的,正负相加结果一定在绝对值之内。
相减只是将加数取补码再相加,所以知道相加溢出就够了。
(2)进位判溢方法(单符号位)
由补码表观察可以知道:
不溢出的情况:
一个绝对值较大的负数和绝对值较小的正数相加,最高有效位(即最高的数值位)不会发生溢出,因此符号位也没有进位。
一个绝对值较小的负数和绝对值较大的正数相加,最高有效位溢出,且使得符号位由1变10(0)进位。
溢出的情况:
上面已经知道:
正数和正数相加,结果为负数,发生溢出。→这种情况是最高有效位进位,而符号位由0变1无进位。
负数和负数相加,结果为正数,发生溢出。→这种情况是最高有效位不进位,而符号位由1变10(0)进位。
所以当最高有效位和符号位的进位不同时,就表明发生了溢出。
(3)双符号位进位判溢方法
采用双符号位(00、11)进行相加,上面已经知道:
所以当最高有效位和符号位的进位不同时,就表明发生了溢出。
→符号位进位,最高有效位不进位就变成了11+11=10(110)。此时为负溢出。
→符号位不进位,最高有效位进位就变成了00+1=01。此时为正溢出。
热心网友
时间:2023-09-17 15:16
定点数加减运算的溢出,可以通过______和______的方法判定。
-----------------------------
定点数,包括“有符号数”和“无符号数”。
有符号数运算溢出的特征是“结果的符号有错”。
无符号数运算溢出的特征是“运算后进位为1”。
所以:
定点数加减运算的溢出,可以通过
__“结果符号是否有错”__和__“进位是否为1”__的方法判定。