计算机组成原理2.2定点加减法运算
2.2 定点加减运算

3.移位功能的实现
在计算机中,通常移位操作由移位寄 存器来实现,但也有一些计算机不设置专 门的移位寄存器,而在加法器的输出端加 一个移位器。移位器是由与门和或门组成 的逻辑电路(实际是一个多路选择器), 可以实现直传(不移位)、左斜一位送 (左移一位)和右斜一位送(右移一位) 的功能。
移位器逻辑电路
两正数相加,当最高有效位产生进位 (C1=1)而符号位不产生进位(Cs=0)时,发 生正溢;两负数相加,当最高有效位不产生进 位(C1=0)而符号位产生进位(Cs=1)时,发 生负溢。故溢出条件为
溢出= Cs C1+CsC1=Cs⊕C1
2.溢出检测方法(续)
⑶采用变形补码(双符号位补码)
叫做在真双符符,号两位个的符情号况位下都,作把为左数边的的一符部号分位参S加s1 运算。这种编码又称为变形补码。
双符号位的含义如下:
Ss1Ss2=00 结果为正数,无溢出 Ss1Ss2=01 结果正溢 Ss1Ss2=10 结果负溢 Ss1Ss2=11 结果为负数,无溢出 当两位符号位的值不一致时,表明产生溢 出,溢出条件为
溢出=Ss1⊕Ss2
2.2.4 基本的二进制加/减法器
教材 P31 图2.3
Y
附: 带符号数的移位和舍入操作
一、 带符号数的移位操作
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
采用一个符号位检测溢出时,当 XXss==YYss==01,,SSss==10时时,,产生产负生溢。正 溢 ; 当
定点加、减法运算

计算机组成原理 定点加、减法运算
符号位: 00 结果>0 11 结果<0 01 溢出 10 溢出
符号位异号溢出(用异或电路判断
计算机组成原理 定点加、减法运算
练习: X=-0.1101 Y=-0.1011 求[X+Y]补 和[X-Y]补
计算机组成原理 定点加、减法运算
[X]补=11.0011 [Y]补=11.0101 [X+Y]补=10.1000 [X-Y]补= 11.1110
计算机组成原理
计算机组成原理 定点加、减法运算
1、二进制的补码加、减法运算 1.1、公式:
[X]补+[Y]补=[X+Y]补 [X]补- [Y]补=[X-Y]补
计算机组成原理 定点加、减法运算
1.2、课堂练习
X=0.11011 Y=0.00011 X=-0.11011 Y=-0.00011
[X]补=
[X+Y]补=0.11110
[X+Y]补=1.00010
[X-Y]补= 0.11000
[X-Y]补=1.01000
计算机组成原理 定点加、减法运算
2、溢出问题 2.1、溢出概念 课堂练习:
X=0.1011 Y=0.1100 [X]补= [Y]补= [X+Y]补= [X-Y]补=
X=-0.1101 Y=-0.1011 [X]补= [Y]补= [X+Y]补= [X-Y]补=
(溢出)
计算机组成原理
计算机组成原理 定点加、减法运算
X=0.1011 Y=0.1100 [X]补=0.1011 [Y]补=0.1100 [X+Y]补=1.0111 × [X-Y]补= 1.0111
X=-0.1101 Y=-0.1011 [X]补=1.0011 [Y]补=1.0101 110
计算机组成原理 第五课

例:X0X1X2X3C =10110 (奇) X0'X1'X2'X3' C' =11110 由X0'X1'X2'X3'生成C*=
(1 ⊕ 1) ⊕ (1 ⊕ 1)
=1,则
C*⊕C' =1⊕0=1 —— 出错
(4) 优缺点
优点:简单易行,省器件. 缺点:只能发现奇数位错,无纠错能力.
2.1.4 数据校验码
1. 数据校验码:
用以发现或同时能得出错误位置特征的数据编码. 计算机中的错误类型: ; (1)固定性错误---元器件故障; ) (2)突发性错误---噪声干扰. )
2. 检错码--奇偶校验码 (1) 定义
使包括一位校验位在内的数据代码,"1"的个数总是奇 (或偶)数个为合法数据的编码.
2. 补码定点减法
(1)补码减法的规则: 推论: [X-Y]补= [X+(-Y)]补 =[X]补+[-Y]补 已知 [Y]补 ,那么 [-Y]补=? (2)求补: 由[Y]补求[-Y]补,称为对Y求补. (3)求补规则 : 不管真值Y时正数还是负数,求补的方法都是将[Y]补 可见:求补时,从[Y]补的最低位开始向高位扫描,见到第 连同符号位在内各位变反, 末位加1. 一个"1",包括这个"1"的各位不变,其余各位变反 例如:[y]补=1.1010,则环冗余校验码(CRC) CRC
n位数据位和r位校验位只有1位出错,共有n+r种情况, (1) 纠正一位错所需的校验码位数r 加上没有错的一种情况,共有n+r+1种情况,而r位二进 设待编码的信息有效位数为n,则r应满足: 制的编码数为2r,因此 2r≥n+r+1 即 r>log2n n r 1 2 2~4 3 5~11 12~26 4 5
计算机组成原理第四版第二章

+ [y]补 0. 0 1 0 1 [x+y]补 0. 1 1 1 0
所以x+y=+0.1110
Back
第二章 运算方法和运算器
B 补码减法
➢ 公式:
[x-y]补=[x]补-[y]补=[x]补+[-y]补
➢ 举例
已知 x=+0.1101 , y=+0.0110,求x-y。 解: [x]补=0.1101 [y]补=0.0110 ,[-y]补=1.1010 [x]补 0. 1 1 0 1 + [-y]补 1. 1 0 1 0 [x-y]补 1 0. 0 1 1 1
最大正数,称为“上溢” 或“正溢出”
两个负数相加,结果 小于机器所能表示的最
小负数,称为“下溢” 或“负溢出”
判断方法
举例说明
Back
第二章 运算方法和运算器
溢出检测方法常用以下两种方法:
1.采用双符号位(变形补码)判断方法:
变形补码: “00”表示正数、“11”表负数,两符号位同时参加运算, 运算结果符号出现01或10表明溢出。
发生溢出;而在浮点运算时,运算结果超出尾数的表示范围 却并不一定溢出,只有当阶码也超出所能表示的范围时,才 发生溢出。
Back
3.十进制数串的表示方法
➢ 目前,大多数通用性较强的计算机都能直接 处理十进制形式表示的数据。十进制数串 在计算机内主要有两种表示形式:
➢ 1.字符串形式 ➢ 2.压缩的十进制数串形式
➢ 计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设 定一个比例因子,数据按其缩小成定点小数或扩大成定点整数再参加运 算,运算结果,根据比例因子,还原成实际数值。若比例因子选择不当, 往往会使运算结果产生溢出或降低数据的有效精度。
计算机组成原理第3讲_定点加法

S0 S1 S2 S3 Xi Yi Ci-1
函数发生器
17
SN74181中一位ALU单元: 主要部分是由两个半加器组成的一位全加器。 在全加器的输入端附加了选择 类型控制输入信号M控制 输入控制S3~S0。S3~S0的16种 ALU作算术运算(M=L)或 组合可控制16种运算。 作逻辑运算(M=H)。
Fi
=1
Yi ≥1 & =1 ≥1 & Xi
Fi
一位全加器
12
4. 组内并行组间并行的进位链 C4 = G4+ P4C3 = G4+ P4G3+ P4 P3G2+ P4P3P2G1+ P4P3P2P1C0 仿照前面分析每一位进位的方法,每组的最高进位可分为两部分 在第一小组的最高进位C4的进位表达式中,前四项 G4+ P4G3+ P4 P3G2+ P4P3P2G1与低位来的进位C0无关,只与本小组 内的Gi和 Pi有关,称为该小组的进位生成函数GN。 GN = G4+ P4G3+ P4 P3G2+ P4P3P2G1 最后一项P4P3P2P1C0依赖于低位的进位信号,称为本小组的 传送进位,称P4P3P2P1为小组的传送函数PN。 PN = P4P3P2P1 可得各小组的组间并行进位表达式
每个小组内的进位延迟时间是2tpd 16位组内并行组间串行进位链的进位延迟时间是9tpd
11
用4位组内并行进位ALU组成16位组内并行组间串行进位的 ALU的方法: Cn+4 Cn Cn+4 Cn Cn+4 Cn Cn+4 Cn
C16 4位组内并 C12 4位组内并 C8
行进位ALU X Y 行进位ALU X Y
计算机组成原理-第2周下-2.3节定点乘法运算

第二章 运算方法和运算器本章内容 2.1 数据与文字的表示方法 2.2 定点加法、减法运算 2.3 定点乘法运算 2.4 定点除法运算 2.5 定点运算器的组成 2.6 浮点运算方法和浮点运算器中山大学 信息科学与技术学院 陈 任 2010.92.3 定点乘法运算2.3.1 原码乘法1.人工算法与机器算法的同异性 运算规则:乘积的符号位由两数的符号位按异或运算得到, 乘积的数值部分则是两个正数相乘之积。
设n位被乘数和乘数用定点小数表示(定点整数也同样适用) 被乘数 [x]原=xf xn-1…x1x0 乘数 [y]原=yf yn-1…y1y0 则乘积[z]原=(xf⊕yf)+(xn-1…x1x0)(yn-1…y1y0) 式中,xf为被乘数符号,yf为乘数符号。
乘积符号的运算法则是:同号相乘为正,异号相乘为负。
由于 被乘数和乘数和符号组合只有四种情况(xfyf=00,01,10,11),因 此积的符号可按“异或”(按位加)运算得到。
数值部分的运算方法与普通的十进制小数乘法类似,不过对于 用二进制表达式的数来说,其乘法规则更为简单一些。
2 设x=1101,y=1011,先用习惯方法求其乘积,其过程如下:设x=1101,y=1011,用习惯方法求其乘积,其过程如下运算的过程与十进制乘法相似:从乘数y的最低位开始,若这一位 为“1”,则将被乘数x写下;若这一位为“0”,则写下全0。
然 后在对乘数y的高一位进行乘法运算,其规则同上,不过这一位乘 数的权与最低位乘数的权不一样,因此被乘数x要左移一位。
以 此类推,直到乘数各位乘完为止,最后将它们统统加起来,变得到最 后乘积z。
3问题:人们习惯的算法对机器并不完全适用。
原因之一:机器通常只有n位长,两个n位数相乘,乘积可能为2n位。
原因之二:只有两个操作数相加的加法器难以胜任将n个位积一次 相加起来的运算。
被乘数x=1101,乘数y=1011.早期计算机中为 了简化硬件结构,采 用串行的1位乘法方 案,即多次执行“加 法—移位”操作来 实现。
计算机组成原理教案(第二章)

最小负数值=-(215-1)10=(-32767)10
1
111 111 111 111 111
例6]假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格 化浮点数x,真值表示为: x=(-1)s×(1.M)×2E-128 问:它所表示的规格化的最大正数、最小正数、最大负数、最小负 数是多少? 1)最大正数 0 11 111 111 111 111 111 111 111 111 111 11
2.1.1 数据格式
计算机中常用的数据表示格式有两种
一是定点格式,数值范围有限,要求但的处理硬件比较简单。
二是浮点格式,数值范围很大,但要求硬件比较复杂。
1.定点数的表示方法
定点表示:约定机器中所有数据的小数点位置是固定不变的
(x0:符号位,0代表正号,1代表负号):
纯小数和纯整数
目前计算机中多采用定点纯整数表示,因此将定点数表示的运算 简称为整数运算。
00000001 0000000011
(2).压缩的十进制数串形式
每个数位占用半个字节(即4个二进制位),其值可用二-十编码 (BCD码)或数字符的ASCII码的低4位表示。 符号位也占半个字节并放在最低数字位之后,其值选用四位编 码中的六种冗余状态中的有关值,
1 2 3 C
(+123) 0 1 2 D
2.浮点数的表示方法
浮点表示法:把一个数的有效数字和数的范围在计算机的一个 存储单元中分别予以表示,这种把数的范围和精度分别表示的 方法,数的小数点位置随比例因子的不同而在一定范围内自 由浮动。 9 × 10-28=0.9 × 10-27
N=Re.M M :尾数,是一个纯小数。
e :比例因子的指数,称为浮点数的指数,是一个整数。 R :比例因子的基数,对于二进计数值的机器是一个常数 ,一般规定R 为2,8或16。
经典:计算机组成原理-第2章-运算方法和运算器

第二章:运算方法和运算器
2.1 数据与文字的表示方法 2.2 定点加法、减法运算 2.3 定点乘法运算 2.4 定点除法运算 2.5 定点运算器的组成 2.6 浮点运算方法和浮点运算器
其中尾数域所表示的值是1.M。因为规格化的浮点数的尾数域最
左位(最高有效位)总是1。故这一位经常不予存储,而认为隐藏
在小数点的左边。
64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏
移值是1023。因此规格化的64位浮点数x的真值为:
x=(-1)s ×(1.M) × 2E-1023 e=E-1023
[X]反=1.x1x2...xn 对于0,有[+0]反=[-0]反之分:
[+0]反=0.00...0
[-0]反=1.11...1
我们比较反码与补码的公式
[X]反=2-2-n+X
[X]补=2+X
可得到 [X]补=[X]反+2-n
8
若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变 0,然后在最末位(2-n)上加1。
10100.10011=1.010010011*24 e=4 于是得到:S=0,E=4+127=131=10000011, M=010010011 最后得到32位浮点数的二进制存储格式为: 0100 0001 1010 0100 1100 0000 0000 0000=(41A4C000)164
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[例11] x =+0.1101,y=+0.0110, 求x-y。
[解:] [x]补= 0.1101 [-y]补=1.1010 [y]补=0.0110
[x ]补
+ [-y]补 [x-y]补 所以
0.1101
1.1010 1 0.0111
x-y=+0.0111
2.2.3 溢出概念与检测方法
在定点小数机器中,数的表示范围
2.2 定点加法、减法运算
定点加减法运算包括原码、反
码、补码三种带符号的加减运算
补码加减运算实现起来最方便
2.2.1补码加法
• 负数用补码表示后,运算器里只需要 一个加法器 补码加法的公式是:
[x]补+[y]补=[x+y]补 (mod 2)
(2.17)
证明[x]补+[y]补=[x+y]补
• 假设采用定点小数表示,因此证 明的先决条件是: • ︱x︱﹤1,︱y︱﹤1, ︱x+y︱﹤1
[x+y]补=0.1000
两负数的和为正数
之所以发生错误,是因为运算
结果产生了溢出。两个正数相加,
结果大于机器所能表示的最大正数,
称为上溢。而两个负数相加,结果
小于机器所能表示的最小负数,称
为下溢。
为了判断“溢出”是否发生,可采 用两种检测的方法。第一种方法是采用 双符号位法,这称为“变形补码”或 “模4补码”,从而可使模2补码所能表 示的数的范围扩大一倍。变形补码定义 为: x 2 >x≥0 [x]补= { (2.22) 4+x 0 >x≥ - 2
为| x |<1。在运算过程中如出现大于1
的现象,称为“溢出”。在定点机中,
正常情况下溢出是不允许的。
机器定点小数表示
[例12] x=+0.1011, y=+0.1001,求x +y。
[x+y]补=1.0100 两正数的和为负数
[例13] x =-0.1101, y =-0.1011,求 x +y。
(mod 2)
(2.19a)
∵[x-y]补=[x+(-y)]补=[x]补+[-y]补
(2.19b)
将式(2.19a)与(2.19b)相加,得
[-y]补+[y]补
=[x+y]补+[x-y]补-[x]补-[x]补
=[x+y+x-y]补-[x]补-[x]补
=[x+x]补-[x]补-[x]补=0
故 [-y]补=-[y]补
常规的加法运算使用同一加法器电
路,从而简化了计算机的设计。
数用补码表示时,减法运算的公式 为:
[X-y]补=[x]补-[y]补=[x]补+[-y]补 (2.18)
只要证明[-y]补=-[y]补,上式即得 证。 现证明如下:
∵[x+y]补=[x]补+[y]补
∴[y]补=[x+y]补-[x]补 ∴[-y]补 =[x-y]补-[x]补
(mod 2)
(2.20)
从[ y ] 补 求[- y ] 补 的法则是:对 [y]补连同符号位一起求反,最末位加 “1”(定点小数中这个1实际上是2-n), 即可得到[-y]补。 [-y]补被称为[y]补的机器负数, 由[ y ] 补 求[- y ] 补 的过程称为对[ y ] 补
变补(求补),表示为:
[解:]
[x]补 =0.1001, [y]补=0.0101
[x ]补
+ [y ]补 所以
0.1001
0.0101
[x+y]
补
0.1110
x+y=0.1110
[ 例9] x =+0.1011, y =-0.0101, 求x+y。
[解:] [x]补 =0.1011, [y]补=1.1011
[x ]补 0.1011
证明[x]补+[y]补=[x+y]补
• (4)x<0,y<0,则x+y<0 ∵[x]补=2+x,[y]补=2+y ∴[x]补+[y]补 =2+x+2+y =2+(2+x+y) • (x+y)是负数,而其绝对值又小于1, 那么(2+x+y)就一定是小于2而大于1 的数,进位”2”必丢失
。 相加两数都是负数,则其 和也一定是负数。
或用同余式表示为 [x]补=4+x
• (1)当x﹥0,y﹥0时,有x+y﹥0
• 根据数据补码的定义
• [x]补+[y]补=x+y=[x+y]补 (mod 2)
证明[x]补+[y]补=[x+y]补
• (2)当x﹥0,y﹤0,有x+y>0, 或x+y<0两种情况 • 根据补码定义[x]补=x,[y]补=2+y • [x]补+[y]补=x+2+y=2+(x+y) • 当x+y>0时,有
上式右边分为”2”和(2+x+y)两部分。 既然
又因(x+y)<0,所以
[x]补+[y]补=2+(x+y)=[x+y]补 (mod 2)
至此我们证明了,在模2意义下,
任意两数的补码之和等于该两数之和
的补码。这是补码加法的理论基础,
其结论也适用于定点整数。
[例8] x=0.1001, y=0.0101,求x+y
[-Y]补=[ [Y]补 ]变补
写成运算表达式,则为
[-y]补=﹁[y]补+2-n (2.21)
其中符号﹁表示对[y] 补 作包括符号 位在内的求反操作,2 -n 表示最末位
的1。
[ 例 10] 已 知 x 1 = - 0.1110 , x 2 = + 0.1101,求:[ x 1] 补 ,[- x 1] 补 ,[ x 2] 补 ,[- x2]补。 [解:] [x1]补=1.0010 [-x1]补= ﹁ [x1]补+ 2-4 =0.1101 +0.0001 =0.1110 [x2]补=0.1101 [-x2]补= ﹁ [x2]补+ 2-4 = 1.0010 +0.0001 =1.0011
• [x]补+[y]补=x+y=[x+y]补(mod 2)
[x]补+[y]补=x+2+y=2+(x+y)
证明[x]补+[y]补=[x+y]补
• 当x+y<0时,2 + (x+y) < 2, 又因(x+y)<0,
• [x]补+[y]补=2+(x+y)=[x+y]补 (mod 2)
• (3)x<0,y>0,这种情况和第2种 情况一样
+ [y ]补
1.1011
[x+y]补 1 0.011,补码加法的 特点,一是符号位要作为数的一部 分一起参加运算,二是要在模2的意
义下相加,即超过2的进位要丢掉。
2.2.2 补码减法
负数的减法运算也要设法化为
加法来做,其所以使用这种方法而
不使用直接减法,是因为它可以和