《计算机组成原理第4章数值的机器运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15
3.移位功能的实现 3.移位功能的实现 在计算机中, 在计算机中 , 通常移位操作由移位寄存 器来实现, 器来实现,但也有一些计算机不设置专门的移 位寄存器,而在加法器的输出端加一个移位器。 位寄存器,而在加法器的输出端加一个移位器。 移位器是由与门和或门组成的逻辑电路( 移位器是由与门和或门组成的逻辑电路(实际 是一个多路选择器) 可以实现直传( 是一个多路选择器 ) , 可以实现直传 ( 不移 左斜一位送(左移一位) 位)、左斜一位送(左移一位)和右斜一位送 右移一位)的功能。 (右移一位)的功能。
10
3.补码加减运算规则
⑴参加运算的两个操作数均用补码表示; 参加运算的两个操作数均用补码表示; 符号位作为数的一部分参加运算; ⑵符号位作为数的一部分参加运算; 若做加法, 则两数直接相加, 若做减法, ⑶ 若做加法 , 则两数直接相加 , 若做减法 , 则 将被减数与减数的机器负数相加; 将被减数与减数的机器负数相加; ⑷运算结果仍用补码表示
第4章数值的机器运算
运算器是计算机进行算术运算和逻辑运 算的主要部件, 算的主要部件,运算器的逻辑结构取决于机器 的指令系统、数据表示方法和运算方法等。 的指令系统、数据表示方法和运算方法等。本 章主要讨论数值数据在计算机中实现算术运算 和逻辑运算的方法, 和逻辑运算的方法,以及运算部件的基本结构 和工作原理。 和工作原理。
8
4.2.2 补码加减运算
1.补码加法 补码加法 两个补码表示的数相加,符号位参加运算, 两个补码表示的数相加,符号位参加运算,且两 数和的补码等于两数补码之和, 数和的补码等于两数补码之和,即: [X+Y]补=[X]补+[Y]补
2.补码减法 补码减法
根据补码加法公式可推出: 根据补码加法公式可推出: [X-Y]补=[X+(-Y)]补=[X]补+[-Y]补 从补码减法公式可以看出,只要求得[-Y] 补 , 就 从补码减法公式可以看出 , 只要求得 可以变减法为加法。 不管Y的真值为正或为负 的真值为正或为负, 可以变减法为加法 。 不管 的真值为正或为负 , 已知 [Y]补求[-Y]补的方法是:将[Y]补连同符号位一起求反, 的方法是: 连同符号位一起求反, 末尾加“ 被称为[Y] 的机器负数, 末尾加 “ 1” 。 [-Y]补 被称为 补 的机器负数 , 由 [Y] 补 的过程称为对[Y] 变补(求补) 求[-Y]补的过程称为对 补变补(求补),表示为 [-Y]补=[[Y]补]变补 9
3
4.1 基本算术运算的实现
计算机中最基本的算术运算是加法运算 不论加、 , 不论加 、 减 、 乘 、 除运算最终都可以归结 为加法运算。 为加法运算 。 所以在此讨论最基本的运算部 加法器, 件 ——加法器 , 以及并行加法器的进位问题 加法器 。
4
4.1.1 加法器
1.全加器 全加器 全加器( )是最基本的加法单元, 全加器(FA)是最基本的加法单元, 它有三个输入量:操作数A 它有三个输入量:操作数 i和Bi、低位传来 的进位C 两个输出量:本位和S 的进位 i-1,两个输出量:本位和 i、向高位 的进位C 的进位 i。
图4-1 全加器的逻辑框图
5
全加器真值表
Ai Bi Ci-1 Si Ci
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 1 1 0 1 0 0 1
0 0 0 1 0 1 1 1
6
2.串行加法器与并行加法器 2.串行加法器与并行加法器
加法器有串行和并行之分。在串行加法器中, 加法器有串行和并行之分。在串行加法器中, 只有一个全加器,数据逐位串行送入加法器进行运算; 只有一个全加器,数据逐位串行送入加法器进行运算; 并行加法器则由多个全加器组成, 并行加法器则由多个全加器组成,其位数的多少取决 于机器的字长,数据的各位同时运算. 于机器的字长,数据的各位同时运算 串行加法器具有器件少、 成本低的优点, 串行加法器具有器件少 、 成本低的优点 , 但运 算速度太慢, 算速度太慢,所以除去某些低速的专用运算器外很少 采用。 采用。 并行加法器可同时对数据的各位相加, 并行加法器可同时对数据的各位相加 , 但存在 着一个加法的最长运算时间问题。 着一个加法的最长运算时间问题。这是因为虽然操作 数的各位是同时提供的, 数的各位是同时提供的,但低位运算所产生的进位会 影响高位的运算结果。 例如: 相加, 影响高位的运算结果 。 例如 : 11…11和 00…01相加 , 和 相加 最低位产生的进位将逐位影响至最高位,因此, 最低位产生的进位将逐位影响至最高位,因此,并行 加法器的最长运算时间主要是由进位信号的传递时间 决定的,而每个全加器本身的求和延迟只是次要因素。 决定的,而每个全加器本身的求和延迟只是次要因素。 很明显, 很明显,提高并行加法器速度的关键是尽量加快进位 产生和传递的速度。 产生和传递的速度。
16
4.4 定点乘法运算
在计算机中, 在计算机中 , 乘法运算大多数由累加与 移位来实现, 移位来实现,也有些机器中具有由大规模集成 电路制造的阵列乘法模块。 电路制造的阵列乘法模块。
4.5 定点除法运算
除法是乘法的逆运算,与乘法运算的处 除法是乘法的逆运算 , 理思想相似,可以将n位除转化成若干次 位除转化成若干次“ 理思想相似,可以将 位除转化成若干次“减 移位” 法-移位”,也有些计算机具有由大规模集成 电路制造的阵列除法模块。 电路制造的阵列除法模块。
“某数的补码表示 ” 与 “ 变补 ” 是两个不同的 某数的补码表示” 变补” 某数的补码表示 概念。 一个负数由原码转换成补码时, 概念 。 一个负数由原码转换成补码时 , 符号 位是不变的, 仅对数值位各位变反, 位是不变的 , 仅对数值位各位变反 , 末位加 “ 1”。 而变补则不论这个数的真值是正是负 , 。 而变补则不论这个数的真值是正是负, 一律连同符号位一起变反,末位加“ 。 一律连同符号位一起变反,末位加“1”。[Y] 表示的真值如果是正数, 则变补后[-Y] 补 所 补 表示的真值如果是正数 , 则变补后 表示的真值变为负数,反之亦然。 表示的真值变为负数,反之亦然。 例1:Y=-0.0110, [Y]原=1.0110, : , , [Y]补=1.1010, [-Y]补=0.0110 , [Y]原=0.0110, 例2:Y=0.0110, : , , [Y]补=0.0110, [-Y]补=1.1010 ,
13
4.3.1 带符号数的移位操作
1.原码的移位规则 原码的移位规则 不论正数还是负数, 在左移或右移时, 不论正数还是负数 , 在左移或右移时 , 符号位均不变,空出位一律以“ 补入 补入。 符号位均不变,空出位一律以“0”补入。 负数的原码移位前后结果为: 负数的原码移位前后结果为: 左移:移位前有: 左移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有: 移位后有:1 X2 X3 … Xn 0 右移:移位前有: 右移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有: 移位后有:1 0 X1 … Xn-2 Xn-1
1
本章学习内容 4.1 基本算术运算的实现 4.2 定点加减运算 4.3 带符号数的移位和舍入操作 4.4 定点乘法运算 4.5 定点除法运算 4.6 规格化浮点运算 4.7 十进制整数的加法运算 4.8 逻辑运算与实现 4.9 运算器的基本组成与实例
2
本章学习要求 掌握: 掌握:定点补码加法和减法运算方法 理解: 理解:补码移位运算和常见的舍入操作方法 了解: 了解:串行加法器与并行加法器 掌握:定点原码、 掌握:定点原码、补码乘法运算方法 掌握:定点原码、 掌握:定点原码、补码加减交替除法运算方法 理解: 理解:浮点加减乘除运算 了解: 了解:运算器的基本结构
补码加法示例
例3:A=0.1011,B=-0.1110,求A+B : , , ∵[A]补=0.1011 [B]补=1.0010 0.1011 [A]补 + 1.0010 [B]补 1.1101 [A+B]补 ∴[A+B]补=1.1101 A+B=-0.0011
11
补码减法示例 例4:A=0.1011,B=-0.0010,求A-B : , , ∵[A]补=0.1011 [B]补=1.1110 [-B]补=0.0010 0.1011 [A]补 + 0.0010 [-B]补 0.1101 [A-B]补 ∴[A-B]补=0.1101 A-B=0.1101
12
4.3 带符号数的移位和舍入操作
在计算机中,实现乘除运算的方案通常有 种 在计算机中,实现乘除运算的方案通常有3种: 软件实现。在低档微机中无乘除运算指令, ⑴ 软件实现 。 在低档微机中无乘除运算指令 , 只能用乘法和除法子程序来实现乘除运算。 只能用乘法和除法子程序来实现乘除运算。 ⑵ 在原有实现加减运算的运算器基础上增加 一些逻辑线路,使乘除运算变换成加减和移位操作。 一些逻辑线路 , 使乘除运算变换成加减和移位操作 。 在机器中设有乘除指令。 在机器中设有乘除指令。 设置专用的乘、除法器, ⑶ 设置专用的乘 、 除法器 , 机器中设有相应 的乘除指令。 的乘除指令。 不管采用什么方案实现乘除法, 不管采用什么方案实现乘除法,基本原理是相 同的。 如果采用第⑵ 种方案, 同的 。 如果采用第 ⑵ 种方案 , 则必然会涉及到移位 操作。 操作。
17表示方法, 第2章中已经讨论了浮点数的表示方法,这里将 章中已经讨论了浮点数的表示方法 进一步讨论规格化浮点数的四则运算问题, 进一步讨论规格化浮点数的四则运算问题 , 其中尾 数的基值r=2。 数的基值 。 浮点运算的阶码只有加减运算, 尾数则有加、 浮点运算的阶码只有加减运算 , 尾数则有加 、 除四种运算。 减 、 乘 、 除四种运算 。 可见浮点运算器主要由两个 定点运算部件组成, 一个是阶码运算部件, 定点运算部件组成 , 一个是阶码运算部件 , 用来完 成阶码加、 成阶码加 、 减 , 以及控制对阶时小阶的尾数右移次 数和规格化时对阶码的调整; 数和规格化时对阶码的调整 ; 另一个是尾数运算部 件 , 用来完成尾数的四则运算以及判断尾数是否已 规格化。此外,还需要有溢出判断电路等。 规格化。此外,还需要有溢出判断电路等。 现代计算机可把浮点运算部件做成任选件, 现代计算机可把浮点运算部件做成任选件,或 称为协处理器。 称为协处理器 。 所谓协处理器是因为它只能协助主 处理器工作,不能单独工作。 处理器工作,不能单独工作。
7
4.2 定点加减运算
定点数的加减运算包括原码、补码和反码 种带符号数的 定点数的加减运算包括原码、补码和反码3种带符号数的 加减运算,其中补码加减运算实现起来最方便。 加减运算,其中补码加减运算实现起来最方便。
4.2.1 原码加减运算
原码加减运算规则: 原码加减运算规则: 参加运算的操作数取其绝对值; ⑴参加运算的操作数取其绝对值; 若做加法,则两数直接相加,若做减法, ⑵若做加法,则两数直接相加,若做减法,则将减数先 变一次补,再进行加法运算; 变一次补,再进行加法运算; 运算之后,可能有两种情况: ⑶运算之后,可能有两种情况: 有进位,结果为正,即得到正确的结果。 ①有进位,结果为正,即得到正确的结果。 ②无进 结果为负,则应再变一次补,才能得到正确的结果。 位,结果为负,则应再变一次补,才能得到正确的结果。 结果加上符号位。 ⑷结果加上符号位。 通常,把运算之前的变补称为前变补, 通常,把运算之前的变补称为前变补,运算之后的变补 称为后变补。 称为后变补。
14
2.补码的移位规则 2.补码的移位规则 ⑴正数 符号位不变,不论左移或右移, 符号位不变 , 不论左移或右移 , 空出位 一律以“ 补入 补入。 一律以“0”补入。 ⑵负数 符号位不变,左移后的空出位补“ , 符号位不变 ,左移后的空出位补 “ 0”, 右移后的空出位补“ 。 右移后的空出位补“1”。 左移:移位前有: 左移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有: 移位后有:1 X2 X3 … Xn 0 右移:移位前有: 右移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有: 移位后有:1 1 X1 … Xn-2 Xn-1
3.移位功能的实现 3.移位功能的实现 在计算机中, 在计算机中 , 通常移位操作由移位寄存 器来实现, 器来实现,但也有一些计算机不设置专门的移 位寄存器,而在加法器的输出端加一个移位器。 位寄存器,而在加法器的输出端加一个移位器。 移位器是由与门和或门组成的逻辑电路( 移位器是由与门和或门组成的逻辑电路(实际 是一个多路选择器) 可以实现直传( 是一个多路选择器 ) , 可以实现直传 ( 不移 左斜一位送(左移一位) 位)、左斜一位送(左移一位)和右斜一位送 右移一位)的功能。 (右移一位)的功能。
10
3.补码加减运算规则
⑴参加运算的两个操作数均用补码表示; 参加运算的两个操作数均用补码表示; 符号位作为数的一部分参加运算; ⑵符号位作为数的一部分参加运算; 若做加法, 则两数直接相加, 若做减法, ⑶ 若做加法 , 则两数直接相加 , 若做减法 , 则 将被减数与减数的机器负数相加; 将被减数与减数的机器负数相加; ⑷运算结果仍用补码表示
第4章数值的机器运算
运算器是计算机进行算术运算和逻辑运 算的主要部件, 算的主要部件,运算器的逻辑结构取决于机器 的指令系统、数据表示方法和运算方法等。 的指令系统、数据表示方法和运算方法等。本 章主要讨论数值数据在计算机中实现算术运算 和逻辑运算的方法, 和逻辑运算的方法,以及运算部件的基本结构 和工作原理。 和工作原理。
8
4.2.2 补码加减运算
1.补码加法 补码加法 两个补码表示的数相加,符号位参加运算, 两个补码表示的数相加,符号位参加运算,且两 数和的补码等于两数补码之和, 数和的补码等于两数补码之和,即: [X+Y]补=[X]补+[Y]补
2.补码减法 补码减法
根据补码加法公式可推出: 根据补码加法公式可推出: [X-Y]补=[X+(-Y)]补=[X]补+[-Y]补 从补码减法公式可以看出,只要求得[-Y] 补 , 就 从补码减法公式可以看出 , 只要求得 可以变减法为加法。 不管Y的真值为正或为负 的真值为正或为负, 可以变减法为加法 。 不管 的真值为正或为负 , 已知 [Y]补求[-Y]补的方法是:将[Y]补连同符号位一起求反, 的方法是: 连同符号位一起求反, 末尾加“ 被称为[Y] 的机器负数, 末尾加 “ 1” 。 [-Y]补 被称为 补 的机器负数 , 由 [Y] 补 的过程称为对[Y] 变补(求补) 求[-Y]补的过程称为对 补变补(求补),表示为 [-Y]补=[[Y]补]变补 9
3
4.1 基本算术运算的实现
计算机中最基本的算术运算是加法运算 不论加、 , 不论加 、 减 、 乘 、 除运算最终都可以归结 为加法运算。 为加法运算 。 所以在此讨论最基本的运算部 加法器, 件 ——加法器 , 以及并行加法器的进位问题 加法器 。
4
4.1.1 加法器
1.全加器 全加器 全加器( )是最基本的加法单元, 全加器(FA)是最基本的加法单元, 它有三个输入量:操作数A 它有三个输入量:操作数 i和Bi、低位传来 的进位C 两个输出量:本位和S 的进位 i-1,两个输出量:本位和 i、向高位 的进位C 的进位 i。
图4-1 全加器的逻辑框图
5
全加器真值表
Ai Bi Ci-1 Si Ci
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 1 1 0 1 0 0 1
0 0 0 1 0 1 1 1
6
2.串行加法器与并行加法器 2.串行加法器与并行加法器
加法器有串行和并行之分。在串行加法器中, 加法器有串行和并行之分。在串行加法器中, 只有一个全加器,数据逐位串行送入加法器进行运算; 只有一个全加器,数据逐位串行送入加法器进行运算; 并行加法器则由多个全加器组成, 并行加法器则由多个全加器组成,其位数的多少取决 于机器的字长,数据的各位同时运算. 于机器的字长,数据的各位同时运算 串行加法器具有器件少、 成本低的优点, 串行加法器具有器件少 、 成本低的优点 , 但运 算速度太慢, 算速度太慢,所以除去某些低速的专用运算器外很少 采用。 采用。 并行加法器可同时对数据的各位相加, 并行加法器可同时对数据的各位相加 , 但存在 着一个加法的最长运算时间问题。 着一个加法的最长运算时间问题。这是因为虽然操作 数的各位是同时提供的, 数的各位是同时提供的,但低位运算所产生的进位会 影响高位的运算结果。 例如: 相加, 影响高位的运算结果 。 例如 : 11…11和 00…01相加 , 和 相加 最低位产生的进位将逐位影响至最高位,因此, 最低位产生的进位将逐位影响至最高位,因此,并行 加法器的最长运算时间主要是由进位信号的传递时间 决定的,而每个全加器本身的求和延迟只是次要因素。 决定的,而每个全加器本身的求和延迟只是次要因素。 很明显, 很明显,提高并行加法器速度的关键是尽量加快进位 产生和传递的速度。 产生和传递的速度。
16
4.4 定点乘法运算
在计算机中, 在计算机中 , 乘法运算大多数由累加与 移位来实现, 移位来实现,也有些机器中具有由大规模集成 电路制造的阵列乘法模块。 电路制造的阵列乘法模块。
4.5 定点除法运算
除法是乘法的逆运算,与乘法运算的处 除法是乘法的逆运算 , 理思想相似,可以将n位除转化成若干次 位除转化成若干次“ 理思想相似,可以将 位除转化成若干次“减 移位” 法-移位”,也有些计算机具有由大规模集成 电路制造的阵列除法模块。 电路制造的阵列除法模块。
“某数的补码表示 ” 与 “ 变补 ” 是两个不同的 某数的补码表示” 变补” 某数的补码表示 概念。 一个负数由原码转换成补码时, 概念 。 一个负数由原码转换成补码时 , 符号 位是不变的, 仅对数值位各位变反, 位是不变的 , 仅对数值位各位变反 , 末位加 “ 1”。 而变补则不论这个数的真值是正是负 , 。 而变补则不论这个数的真值是正是负, 一律连同符号位一起变反,末位加“ 。 一律连同符号位一起变反,末位加“1”。[Y] 表示的真值如果是正数, 则变补后[-Y] 补 所 补 表示的真值如果是正数 , 则变补后 表示的真值变为负数,反之亦然。 表示的真值变为负数,反之亦然。 例1:Y=-0.0110, [Y]原=1.0110, : , , [Y]补=1.1010, [-Y]补=0.0110 , [Y]原=0.0110, 例2:Y=0.0110, : , , [Y]补=0.0110, [-Y]补=1.1010 ,
13
4.3.1 带符号数的移位操作
1.原码的移位规则 原码的移位规则 不论正数还是负数, 在左移或右移时, 不论正数还是负数 , 在左移或右移时 , 符号位均不变,空出位一律以“ 补入 补入。 符号位均不变,空出位一律以“0”补入。 负数的原码移位前后结果为: 负数的原码移位前后结果为: 左移:移位前有: 左移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有: 移位后有:1 X2 X3 … Xn 0 右移:移位前有: 右移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有: 移位后有:1 0 X1 … Xn-2 Xn-1
1
本章学习内容 4.1 基本算术运算的实现 4.2 定点加减运算 4.3 带符号数的移位和舍入操作 4.4 定点乘法运算 4.5 定点除法运算 4.6 规格化浮点运算 4.7 十进制整数的加法运算 4.8 逻辑运算与实现 4.9 运算器的基本组成与实例
2
本章学习要求 掌握: 掌握:定点补码加法和减法运算方法 理解: 理解:补码移位运算和常见的舍入操作方法 了解: 了解:串行加法器与并行加法器 掌握:定点原码、 掌握:定点原码、补码乘法运算方法 掌握:定点原码、 掌握:定点原码、补码加减交替除法运算方法 理解: 理解:浮点加减乘除运算 了解: 了解:运算器的基本结构
补码加法示例
例3:A=0.1011,B=-0.1110,求A+B : , , ∵[A]补=0.1011 [B]补=1.0010 0.1011 [A]补 + 1.0010 [B]补 1.1101 [A+B]补 ∴[A+B]补=1.1101 A+B=-0.0011
11
补码减法示例 例4:A=0.1011,B=-0.0010,求A-B : , , ∵[A]补=0.1011 [B]补=1.1110 [-B]补=0.0010 0.1011 [A]补 + 0.0010 [-B]补 0.1101 [A-B]补 ∴[A-B]补=0.1101 A-B=0.1101
12
4.3 带符号数的移位和舍入操作
在计算机中,实现乘除运算的方案通常有 种 在计算机中,实现乘除运算的方案通常有3种: 软件实现。在低档微机中无乘除运算指令, ⑴ 软件实现 。 在低档微机中无乘除运算指令 , 只能用乘法和除法子程序来实现乘除运算。 只能用乘法和除法子程序来实现乘除运算。 ⑵ 在原有实现加减运算的运算器基础上增加 一些逻辑线路,使乘除运算变换成加减和移位操作。 一些逻辑线路 , 使乘除运算变换成加减和移位操作 。 在机器中设有乘除指令。 在机器中设有乘除指令。 设置专用的乘、除法器, ⑶ 设置专用的乘 、 除法器 , 机器中设有相应 的乘除指令。 的乘除指令。 不管采用什么方案实现乘除法, 不管采用什么方案实现乘除法,基本原理是相 同的。 如果采用第⑵ 种方案, 同的 。 如果采用第 ⑵ 种方案 , 则必然会涉及到移位 操作。 操作。
17表示方法, 第2章中已经讨论了浮点数的表示方法,这里将 章中已经讨论了浮点数的表示方法 进一步讨论规格化浮点数的四则运算问题, 进一步讨论规格化浮点数的四则运算问题 , 其中尾 数的基值r=2。 数的基值 。 浮点运算的阶码只有加减运算, 尾数则有加、 浮点运算的阶码只有加减运算 , 尾数则有加 、 除四种运算。 减 、 乘 、 除四种运算 。 可见浮点运算器主要由两个 定点运算部件组成, 一个是阶码运算部件, 定点运算部件组成 , 一个是阶码运算部件 , 用来完 成阶码加、 成阶码加 、 减 , 以及控制对阶时小阶的尾数右移次 数和规格化时对阶码的调整; 数和规格化时对阶码的调整 ; 另一个是尾数运算部 件 , 用来完成尾数的四则运算以及判断尾数是否已 规格化。此外,还需要有溢出判断电路等。 规格化。此外,还需要有溢出判断电路等。 现代计算机可把浮点运算部件做成任选件, 现代计算机可把浮点运算部件做成任选件,或 称为协处理器。 称为协处理器 。 所谓协处理器是因为它只能协助主 处理器工作,不能单独工作。 处理器工作,不能单独工作。
7
4.2 定点加减运算
定点数的加减运算包括原码、补码和反码 种带符号数的 定点数的加减运算包括原码、补码和反码3种带符号数的 加减运算,其中补码加减运算实现起来最方便。 加减运算,其中补码加减运算实现起来最方便。
4.2.1 原码加减运算
原码加减运算规则: 原码加减运算规则: 参加运算的操作数取其绝对值; ⑴参加运算的操作数取其绝对值; 若做加法,则两数直接相加,若做减法, ⑵若做加法,则两数直接相加,若做减法,则将减数先 变一次补,再进行加法运算; 变一次补,再进行加法运算; 运算之后,可能有两种情况: ⑶运算之后,可能有两种情况: 有进位,结果为正,即得到正确的结果。 ①有进位,结果为正,即得到正确的结果。 ②无进 结果为负,则应再变一次补,才能得到正确的结果。 位,结果为负,则应再变一次补,才能得到正确的结果。 结果加上符号位。 ⑷结果加上符号位。 通常,把运算之前的变补称为前变补, 通常,把运算之前的变补称为前变补,运算之后的变补 称为后变补。 称为后变补。
14
2.补码的移位规则 2.补码的移位规则 ⑴正数 符号位不变,不论左移或右移, 符号位不变 , 不论左移或右移 , 空出位 一律以“ 补入 补入。 一律以“0”补入。 ⑵负数 符号位不变,左移后的空出位补“ , 符号位不变 ,左移后的空出位补 “ 0”, 右移后的空出位补“ 。 右移后的空出位补“1”。 左移:移位前有: 左移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有: 移位后有:1 X2 X3 … Xn 0 右移:移位前有: 右移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有: 移位后有:1 1 X1 … Xn-2 Xn-1