牢科学技术学院 §22定点加法、减法运算 补码的加减法运算 1、加法 任意两个数的补码之和,等于该两 数和的补码。 [X+Y补=[X]补+[DY补(mod2) 两个数不管正负,均用补码表示, 符号位应当做数值参加运算,符号位相 加所产生的进位要丢掉,结果为补码。 2021年2月20日1时6分
2021年2月20日1时6分 1 §2.2 定点加法、减法运算 一、补码的加减法运算 1、加法 任意两个数的补码之和,等于该两 数和的补码。 [X+Y]补= [X]补+[Y]补 (mod 2) 两个数不管正负,均用补码表示, 符号位应当做数值参加运算,符号位相 加所产生的进位要丢掉,结果为补码
牢科学技术学院 可以证明: [+Y补=[xJ补+[Y]补 Xy补=[Ⅺ补+[一1补 [-Y]的求法:将[Y]连同符号位求反加1 即:[y补=y]种+2其中,2表示末位加1 例:X=1001Y=0101,求X+Y=? 解:[X补=01001 1Y1补=00101 X+Y1=X1补+Y1=01001+00101=01110x+y=1110 例:X=1001Y=-0101,求X+Y=? 解:[X=01001 1Y补=11011 X+Y1补=X|补+Y1补=01001+1011=0010x+3 2021年2月20日1时6分
2021年2月20日1时6分 2 可以证明: [X+Y]补= [X]补+[Y]补 [X-Y]补= [X]补+[-Y]补 • [-Y]补的求法:将[Y]补连同符号位求反加1。 例: X=1001 Y=0101,求X+Y=? 解: [X]补=01001 [Y]补=00101 [X+Y]补=[X]补+[Y]补=01001+00101 =01110 x+y=1110 例: X=1001 Y=-0101,求X+Y=? 解: [X]补=01001 [Y]补=11011 [X+Y]补=[X]补+[Y]补=01001+11011 =00110 x+y= 即:[-y]补= ¬[y]补+2 -n 其中, 2 -n表示末位加1
牢科学技术学院 定点运算器 定点加减法 例:X=0.1011Y=0.0101,求X+Y=? 解 []补=0.1011 十 LY]补=1.1011 10.0110 丢到 [X]补+[Y]补=0.0110 X+Y=0.0110 2021年2月20日1时6分
2021年2月20日1时6分 3 定点运算器 ——定点加减法 • 例: X=0.1011 Y=-0.0101,求 X+Y=? 解: [X]补=0. 1 0 1 1 + [Y]补=1. 1 0 1 1 10. 0 1 1 0 丢到 1 [X]补+[Y]补=0.0110 X+Y=0.0110
牢科学技术学院 定点运算器 定点加减法 例:X=-101,Y=-00011,求X+Y=? 解 由以上两例看到补 [Q]补=100111 码加法的特点: 十 LY]补=111101 是符号位要作为 数的一部分一起参 1100100 加运算 丢到 二是要在模2的意 义下相加,即超过 [Q]补+DY]补=100100 2的进位要丢掉! X+Y=-11100 2021年2月20日1时6分 4
2021年2月20日1时6分 4 定点运算器 ——定点加减法 • 例: X=-11001 ,Y=-00011,求X+Y=? 解: [X]补=1 0 0 1 1 1 + [Y]补=1 1 1 1 0 1 1 1 0 1 0 0 丢到 1 [X]补+[Y]补=100100 X+Y=-11100 0 由以上两例看到,补 码加法的特点: 一是符号位要作为 数的一部分一起参 加运算。 二是要在模2的意 义下相加,即超过 2的进位要丢掉!
牢科学技术学院 定点运算器定点加减法 补码的减法: [Ⅺ]补[Y补=[X+(-Y)]补[Ⅺ补+[-Y补 (-Y)的补码称为[Y补的机器负数,由[Y]补 求[一Y补的过程称为将[Y补“变补”或对[Y补求 补,由[Y补求[一Y补的方法是,不管Y的真值为 正或为负,都是将[Y]补的各位连同符号位在内 全变反后,最低位加1。 即:[yl补=[y]补+2m其中,2表示末位加1 2021年2月20日1时6分
2021年2月20日1时6分 5 定点运算器——定点加减法 • 补码的减法: [X]补- [Y]补=[X+(-Y)]补=[X]补+[-Y]补 (-Y)的补码称为[Y]补的机器负数,由[Y]补 求[-Y]补的过程称为将[Y]补 “变补”或对[Y]补求 补,由[Y]补求[-Y]补的方法是,不管Y的真值为 正或为负,都是将[Y]补的各位连同符号位在内 全变反后,最低位加1。 即:[-y]补= ¬[y]补+2 -n 其中, 2 -n表示末位加1
牢科学技术学院 定点运算器 定点加减法 例:X=0.1011Y=-0.0110,求X-Y=? 解: []补=1.0101 +[Y补=0.0110 1.1011 [X-Y]补=1.1011 X-Y=-0.0101 2021年2月20日1时6分 6
2021年2月20日1时6分 6 定点运算器 ——定点加减法 • 例: X=-0.1011 Y=-0.0110,求 X-Y=? 解: [X]补=1. 0 1 0 1 + [-Y]补=0. 0 1 1 0 1. 1 0 11 [X-Y]补=1.1011 X-Y=-0.0101
牢科学技术学院 二、溢出及其判别方法: 在计算机中,由于机器码的尾数通 常是给定的(如16位字长,32位字长), 因此,在计算机中数的表示范围是有限 的,若两数进行加减运算的结果超出了 给定的取值范围,就称为溢出。一旦出 现溢出,必须及时处理,否则会出现错 误。 2021年2月20日1时6分
2021年2月20日1时6分 7 二、溢出及其判别方法: • 在计算机中,由于机器码的尾数通 常是给定的(如16位字长,32位字长), 因此,在计算机中数的表示范围是有限 的,若两数进行加减运算的结果超出了 给定的取值范围,就称为溢出。一旦出 现溢出,必须及时处理,否则会出现错 误
牢科学技术学院 1、溢出 例1:X=1010Y=1001求X+Y 解:[补=01010 +[Y]补=01001 0011 较大正数相加 产生进位,影 响符号位 例2:X=-1010Y=-1011求X+Y 解:[]补=10110 +CY补=10101 较大的负数对应 0]1011 较小的正数补码 相加无进位, 符号位自己相如 2021年2月20日1时6分 8
2021年2月20日1时6分 8 1、溢出 例1:X=1010 Y=1001 求 X+Y 解: [X]补= 0 1 0 1 0 + [Y]补= 0 1 0 0 1 1 0 0 1 1 例2:X=-1010 Y=-1011 求 X+Y 解: [X]补= 1 0 1 1 0 + [Y]补= 1 0 1 0 1 0 1 0 1 1 较大正数相加 产生进位,影 响符号位 较大的负数对应 较小的正数补码 相加无进位, 符号位自己相加
牢科学技术学院 2、溢出原因: 1)两个正数太大:产生进位而改变了符号位 2)两个负数绝对值太大:对应的补码太小,不 能向符号位产生进位,使符号位相加后,向前产 生进位。 问题 1、两异号数相加或两同号数相减是否 会产生溢出?决不会产生溢出 2、仅当两同号数相加或两异号数相减 时才有可能产生滋出?正确 2021年2月20日1时6分
2021年2月20日1时6分 9 2、溢出原因: 1)两个正数太大:产生进位而改变了符号位; 2)两个负数绝对值太大:对应的补码太小,不 能向符号位产生进位,使符号位相加后,向前产 生进位。 1、两异号数相加或两同号数相减是否 会产生溢出? 2、仅当两同号数相加或两异号数相减 时才有可能产生溢出? 问题: 决不会产生溢出 正确
牢科学技术学院 3、溢出的判断 1)采用单符号位的判断方法 例:X=0.100Y=-0.101,求X+Y=? 解: []补=1.100 十 LY]补=1.011 10.111 丢到 两负数相加,结果应为负数,但运算结 果为正数,表明有溢出发生。数据向前 无进位,符号位向前有进位 2021年2月20日1时6分
2021年2月20日1时6分 10 • 例: X=-0.100 Y=-0.101,求X+Y=? 解: [X]补=1. 1 0 0 + [Y]补=1. 0 1 1 10. 1 1 1 丢到 1 两负数相加,结果应为负数,但运算结 果为正数,表明有溢出发生。数据向前 无进位,符号位向前有进位 3、溢出的判断 1)采用单符号位的判断方法