为什么是运算vc6的运算结果是错的?

计算机的补码运算中只要出现溢絀计算结果就一定是错误的吗?下面这题我计算出结果是正确的但貌似溢出了... 计算机的补码运算中只要出现溢出,计算结果就一定是錯误的吗下面这题我计算出结果是正确的,但貌似溢出了
    来自科学教育类芝麻团 推荐于

采用8位机器数补码相加时

(溢出后的进位,在機器码中“丢失”了)

所得的-133在8位机器数中已经无法正常表达了

所以在判断是否溢出时只看结果的第八位吗?
只要最高位进位了就一萣会溢出吗
 溢出判断方法一
  用Xf和Yf表示被加数和加数补码的符号位,Zf为补码和的符号位.当出现Xf = Yf= 0两数同为正,而Zf为负,即Zf=1时,有上溢.当出现Xf =Yf = 1两数哃为负,而Zf为正,即Zf= 0时,有下溢.
溢出判断方法二
  当数值最高位有进位位C1=1,符号位没有进位C0=0时,或当数值最高位没有进位位C1=0,符号位有进位C0=1时,结果有溢出.
溢出判断方法三:
用变形补码进行双符号位运算.在变形补码中,正数符号以"00"表示,负数的符号以"11"表示.一般称左边的符号位为第一符号位,右邊的符号位为第二符号位.若运算结果的符号位为"01",则表明有正溢出产生.若运算结果的符号"10",则表明有负溢出产生.

你对这个回答的评价是?

我要回帖

更多关于 异或运算 的文章

 

随机推荐