补码运算中,常用检查溢出的方法有哪三种?
2个回答
展开全部
溢出判断方法一\r\n 用Xf和Yf表示被加数和加数补码的符号位,Zf为补码和的符号位.当出现Xf = Yf= 0两数同为正,而Zf为负,即Zf=1时,有上溢.当出现Xf =Yf = 1两数同为负,而Zf为正,即Zf= 0时,有下溢.\r\n溢出判断方法二\r\n 当数值最高位有进位位C1=1,符号位没有进位C0=0时,或当数值最高位没有进位位C1=0,符号位有进位C0=1时,结果有溢出.\r\n溢出判断方法三:\r\n用变形补码进行双符号位运算.在变形补码中,正数符号以"00"表示,负数的符号以"11"表示.一般称左边的符号位为第一符号位,右边的符号位为第二符号位.若运算结果的符号位为"01",则表明有正溢出产生.若运算结果的符号"10",则表明有负溢出产生.
展开全部
如果你知道“溢出的原因”,你自然就知道“判断溢出的方法”。
用八位的补码,表示十进制数值,其表达范围是:-128~+127。
16 位的补码,可表示的范围是:-32768 ~ +32767。
补码运算后,如果运算结果,超出了预定的范围,就称为“溢出”。
一旦溢出,运算结果的符号,不符合正常的规律。
检查是否溢出,方法如下:
一、只有加法运算,才会出现“结果超出范围”,否则,就不会溢出。
二、你用十进制人工计算,结果在预定范围之内,就没有溢出。
三、你用二进制人工计算,结果的符号正常,就没有溢出。
四、你编个程,用 CPU 计算,如果 OF=0,就没有溢出。
用八位的补码,表示十进制数值,其表达范围是:-128~+127。
16 位的补码,可表示的范围是:-32768 ~ +32767。
补码运算后,如果运算结果,超出了预定的范围,就称为“溢出”。
一旦溢出,运算结果的符号,不符合正常的规律。
检查是否溢出,方法如下:
一、只有加法运算,才会出现“结果超出范围”,否则,就不会溢出。
二、你用十进制人工计算,结果在预定范围之内,就没有溢出。
三、你用二进制人工计算,结果的符号正常,就没有溢出。
四、你编个程,用 CPU 计算,如果 OF=0,就没有溢出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询