变形补码

出处 计算机语言
中文名 变形补码
目录导航

概述

总的说来就是符号位左边那一位表示正确的符号,0为正,1为负;右边那一位如果和左边的相同,如 "00”表示正且无溢出,"11"表示负且无溢出。如果右边那一位与左边那一位不一样,则表示有溢出。

示例

1、产生01的情况:

补码:

0 111

+ 0 010

————

1 001

两个正数相加出现了负数,明显有误,就是说此时产生了上溢出(注:补码运算时符号位也参与运算)

变形补码:

00 111

+ 00 010

————

01 001

此时读数时,由于左边的符号位是0,所以表示正数,读成+9,而不像模二补码中变成了-7

2、产生10的情况:

补码:

1 001

+ 1 010

————

10 011

溢出一位后,结果变成了0 011,两个负数相加出现了正数,明显有误,就是说此时产生了下溢出(注:补码运算时符号位也参与运算)

变形补码:

11 001

+ 11 010

————

110 011

溢出一位后,结果变成了10 011,此时读数时,由于左边的符号位是1,所以表示负数,读成-19,而不像模二补码中变成了+3

(注:产生01和10时,读数时右边那一位符号也要算在数字里面)

相关百科
返回顶部
产品求购 求购