定点补码加法运算中, 产生溢出的条件是什么? 试给出几种溢出判断方法(不少于两种, 要求写出逻辑表达式)。 如果是浮点加减运算, 产生溢出的条件又是什么?
(1) 定点补码加减运算中, 产生溢出的条件是两个符号相同的数相加超过了定点数的表示范围。 溢出判断方法有以下 3 种:
①设 x 的符号 xf , y 的符号 yf , 运算结果的符号为 sf 。
溢出逻辑表达式: V=xf yf sf +xfyfsf, 若 V=0, 无溢出; 若 V=1, 有溢出。
②若最高位数值位向符号位的进位值 c 与符号位产生的进位输出值 S 相同时, 则没有溢出发生; 如果两个进位值不同, 则有溢出发生。
溢出表达式: V=S⊕ C。
③设左边第一位为第一符号位 Sf1, 相邻的为第二位符号位 Sf2 。 则: 00 表示正号、 01 表示产生正向溢出、 11表示负号、 10 表示产生了负向溢出。
(2) 如果是浮点加减运算, 产生溢出的条件是阶码超过了它的表示范围。