补码加减法运算
2补码加减法运算详解
[x]补 +[ y ] 补 0. 1 0 1 1 1. 1 0 1 1
解:
[x]补=0.1011,
[ x +y ] 补
计算机组成原理
1 0. 0 1 1 0
所以
x+y=0.0110
4
3.补码减法
补码减法运算的公式: [ x -y ] 补=[ x ] 补-[ y ] 补=[ x ] 补+[ -y ] 补
V =C f ⊕C o
其中Cf为符号位产生的进位,Co为最高有效位产生的进位。 此逻辑表达式也可用异或门实现。 V=C1⊕Co 判断电路
c0 x0 y0 c1 x1 y1
FA
z0
V
FA
z1
11
计算机组成原理
(3)双符号位法 一个符号位只能表示正、负两种情况,当产生溢出时,符号位的含义就 会发生混乱。如果将符号位扩充为两位(Sf1、Sf2),其所能表示的信息量将 随之扩大,既能判别是否溢出,又能指出结果的符号。 双符号位法也称为“变形补码”或“模4补码” 。 定点小数变形补码定义: 0 x<1 -1 x<0 0 x<2 n -2 x<0 n (mod 2
机器定点小数表示 发生溢出的原因,是因为运算结果超出编码所能表示的数字大小。 两个正数相加: 结果大于机器所能表示的最大正数,称为上溢; 两个负数相加:结果小于机器所能表示的最小负数,称为下溢。
计算机组成原理 7
例:x=+0.1011, y=+0.1001,
解: [x]补=0.1011 [x]补 + [y]补 [x+y]补
两数差的补码等于两数补码之差
公式证明: 只要证明[–y]补= –[y]补, 上式即得证。 证明:
计算机系统 补码加减法运算
进位
A + B= 01010
3. 反码加减法的硬件配置
A、B 均 n+1 位
1. 移码表示法
定义 [x]移 = 2n + x(2n>x ≥ 2n)
x 为真值,n 为 整数的位数
移码在数轴上的表示
0
2n 2n+1–1
+ [B]补 = 1 . 1 0 1 1
– 0.0101
[A]补 + [B]补 = 1 0 . 0 1 1 0 = [A + B]补 0.0110
∴A+B= 0.0110
例 3.19 设 A = –9,B = –5
求 [A+B]补 解: [A]补 = 1 0 1 1 1
+ [B]补 = 1 1 0 1 1
+ [-B]补 = 1 0 1 0 1
[A]移 + [-B]补 = 1 0 0 0 0
3. 移码加减法的硬件配置
A、B 均 n+1 位
3.2.2 加减法运算的溢出处理(补码运算) 当运算结果超出机器数所能表示的
范围时,称为溢出。显然,两个异号数 相加或两个同号数相减,其结果是不会 溢出的。仅当两个同号数相加或者两个 异号数相减时,才有可能发生溢出的情 况,一旦溢出,运算结果就不正确了, 因此必须将溢出的情况检查出来。 今以4位二进制补码正整数加法运算为 例说明如下:
101101
⑥-14+1= -13 10010
+00001 10011
在上例中,①、②、⑤和⑥得出正确结 果,③和④为溢出。
•今以fA,fB表示两操作数(A、B)的符号位, fS为结果的符号位。符号位fA、fB直接参 与运算,它所产生的进位以Cf表示。在 以2n+1为模的运算中符号位有进位,并不 一定表果C=Cf, 运算结果正确,其中C为数值最高位的 进位,Cf为符号位的进位。如果C≠Cf, 则为溢出,所以溢出条件=C Cf。例3.11 中的③和④即为这种情况。其逻辑电路 见图3.2。
补码的加减及溢出判断、加法器
补码的加减及溢出判断、加法器补码的加减法:加法:整数: [A]补 + [B]补 = [A+B]补(mod 2^(n+1))⼩数: [A]补 + [B]补 = [A+B]补(mod 2)减法:整数: [A-B]补 = [A]补 + [-B]补(mod 2^(n+1))⼩数: [A-B]补 = [A]补 + [-B]补(mod 2)补码加法运算溢出判断三种⽅法:[⽅法⼀]Xf、Yf分别两个数的符号位,Zf为运算结果符号位。
当Xf =Yf =0(两数同为正),⽽Zf=1(结果为负)时,负溢出;当出现Xf =Yf =1(两数同为负),⽽Zf=0(结果为正),正溢出.[⽅法⼆](就是下⽂加法器⾥的溢出标志OF判断:OF=Cn (异或) Cn-1)Cs表⽰符号位的进位,Cp表⽰最⾼数值位进位,⊕表⽰异或。
若 Cs⊕Cp =0 ,⽆溢出;若 Cs⊕Cp =1 ,有溢出。
[⽅法三]⽤变形补码进⾏双符号位运算(正数符为00,负数符号以11)若运算结果的符号位为"01",则正溢;若结果双符号为10,则负溢出;若结果的双符号位为00或11,⽆溢出加法器:溢出标志OF:OF=Cn (异或) Cn-1符号标志SF:SF=Fn-1零标志ZF=1 当且仅当F=0;进位/借位标志CF:CF=Cout (异或) SUB / CF=Cout (异或)Cin做加法时,主要判断是否溢出⽆符号加法溢出条件:CF=1带符号加法溢出条件:OF=1带符号溢出判断: ( OF=1 )(1) 最⾼位和次⾼位的进位不同(2) 和的符号位和加数的符号位不同。
补码计算规则
补码计算规则补码是计算机中表示有符号整数的一种方式。
在计算机内部,所有的数字都以二进制形式存储和处理。
补码的出现是为了解决二进制表示中正负数的表示问题。
补码计算规则是描述补码运算的一套规则,它包括了加法、减法、乘法和除法等基本运算。
一、补码的定义在补码表示中,最高位是符号位,0表示正数,1表示负数。
其余位表示数值大小。
对于一个给定的位数,补码可以表示的最大值为2^(n-1)-1,最小值为-2^(n-1)。
二、补码的表示方法正数的补码与原码相同,负数的补码由其原码取反后再加1得到。
例如,对于一个8位的补码,+3的原码为00000011,补码也为00000011;-3的原码为10000011,补码为11111101。
三、补码的加法运算补码的加法运算可以分为四种情况:正数加正数、正数加负数、负数加正数、负数加负数。
1. 正数加正数两个正数相加,只需要将它们的补码按位相加即可。
若相加结果超过了补码的表示范围,则会发生溢出。
2. 正数加负数正数加负数可以转换为正数减去负数的补码相加。
例如,+3加上-2,可以先计算3减去2的补码,得到00000011 - 11111110 = 00000001,即1。
3. 负数加正数负数加正数也可以转换为正数减去负数的补码相加。
例如,-3加上2,可以先计算3减去2的补码,得到00000011 - 00000010 = 00000001,即1。
4. 负数加负数两个负数相加,可以先将它们的绝对值相加,再取其补码。
例如,-3加上-2,先计算3加上2的补码,得到00000011 + 00000010 = 00000101,再取其补码,即11111011。
四、补码的减法运算补码的减法运算可以通过加上减数的补码来实现。
例如,计算3减去2,可以将2取反后加1得到其补码,即11111110 + 00000001 = 11111111,再与3的补码相加,得到00000011 + 11111111 = 00000010,即2。
除法补码加减交替法
商
0.0000
1 1
10 10
100 100
1 0 01 10011
说明
异号做加法 同号上“1”
[x]补 = 1.0101 [y]补 = 0.1101 [–y]补 = 1.0011
1
+[–y]y]补
异号上“0”
1
∴
[
x y
]补=
1.0011
+[y]补 同号上“1”
则
x y
= – 0.1101
1 末位恒置“1”
补码加减交替法的运算规则
• 运算规则
– 符号位参加运算,除数和被除数均用双符号位补码表示; – 第一步的运算
• 被除数与除数同号,被除数减去除数; • 被除数与除数异号,被除数加上除数;
– 后续步骤的运算
• 余数与除数同号,商上1,余数左移一位减去除数; • 余数与除数异号,商上0,余数左移一位加上除数。
– 重复步骤③ ,包括符号位在内,共做n+1步。
• 如果对商的精度没有特殊要求,一般可采用“末位恒置1” 法,此法操作简单,易于实现,且最大误差仅为2-n 。
2024年11月20日星期三
1
例8.设 x = – 0.1011,y = 0.[11xy01],补求
并还原真值。
被除数(余数)
1.0101 0.1101 0.0010 0.0100 1.0011 1.0111 0.1110 0.1101 1.1011 1.0110 0.1101 0.0011 0.0110
计算机原理(岳乡成)补码加减法运算(公开课)
范围,计算结果错误,就是所谓的溢出。
如何判断两个数在补码运算中是否会产生溢出: 判断的方法:双进位溢出判断法。 说明:使用这方法,要引入两个符号cs和cs+1,cs用来表示参加运算 的两个有符号数中数值位的最高位是否有向符号位进位的情况,有 进位,则cs=1,否则cs=0。Cs+1用来表示符号位是否有向更高位进位 的情况,有进位,则cs+1=1,否则cs+1=0。通过判断cs与cs+1的状态来 判断是否产生溢出,如果cs与cs+1相同(即cs与cs+1同时为0,或同时 为1),则不产生溢出;如果cs与cs+1相异(即cs和cs+1一个为0,一个 为1),则产生溢出。
计算机组成原理
9
计算机组成原理
3
2.补码减法
补码减法运算的规则:
[ x -y ]补=[ x ]补-[ y ]补=[ x ]补+[-y ]补(mod 2n)
两数差的补码等于两数补码之差
减法运算化为加法完成。关键是求[-Y]补
计算机组成原理
4
例: 解:
x= -0.1101,y= -0.0110,求x-y=? [x]补=1.0011 + [y]补=1.1010 [-y]补=0.0110
计算机组成原理
第三章复习1 补码加减法运算及溢 出的判断
计算机组成原理
1
1.补码加法运算 补码加法的规则: [ x ] 补+[ y ] 补=[ x +y ] 补
(mod 2n)
任意两数的补码之和等于该两数之和的补码,这是补码加法的理论基础。
补码加法的特点: (1)符号位要作为数的一部分一起参加运算; (2)在模2的意义下相加,即符号位之前多出的位为模,做丢失处理。
补码加减法运算(计算机组成原理)课件
补码加减法运算在计算机中的局限性
符号位处理
在补码加减法中,符号位需要单独处理,增加了计算的复杂性。
对负数运算的支持有限
虽然补码表示法可以处理负数,但对于某些复杂的负数运算(如乘 除法),可能需要额外的处理方法。
缺乏直观性
补码表示法和人类常用的十进制表示法不同,导致初学者难以理解 。
04
补码加减法运算的 实例分析
对于计算机专业的学生和研究者来说 ,掌握补码加减法是学习计算机组成 原理和深入了解计算机体系结构的基 础。在此基础上,可以进一步探索其 他数值表示和运算方法。
在实际应用中,如何优化补码加减法 的运算速度和精度,以及如何将其更 好地应用于各种不同领域,是值得进 一步研究的问题。同时,随着量子计 算等新型计算技术的发展,数值运算 的方法和原理也可能会发生变化,需 要保持关注和学习。
溢出及其处理
溢出的概念
在进行补码加减法运算时,如果结果超出了数据类型的表 示范围,就会产生溢出。溢出会导致计算结果的错误。
溢出的判断
判断是否溢出可以通过检查运算结果的符号位和最高位(进位) 来实现。如果符号位和最高位(进位)不同,则说明产生了溢出
。
溢出的处理
处理溢出的方法有多种,包括检测溢出后进行相应的处理、采用 有符号数乘除法等方法。在实际应用中应根据具体情况选择合适
补码加法运算的实例
假设有两个补码表示的二进制数X和Y,其中X=+1010,Y=-0101,则X+Y=+1010+(0101)=+0101,因为结果的符号位为0,所以结果为正数,即X+Y=+5。
补码的减法运算
补码减法运算的规 则
在进行补码减法运算时,首先 将减数取反加1得到相应的正 数,然后将这个正数与被减数 相加,最后根据结果的符号位 确定结果的符号,正数符号位 为0,负数符号位为1。
补码的加减运算
数字逻辑概论华中科技大学罗杰补码的加减运算加减运算是计算机中最基本的运算。
加减运算可以用原码、补码、BCD码等各种码制进行。
补码运算可以把减法转换为加法,现代计算机中均采用补码进行加减运算。
◆假设X和Y均为正数,则补码的运算规则如下:[ X ]补+ [ Y ]补= [ X+Y ]补(mod M)两个数的补码之和等于两数之和的补码。
[ X ]补-[ Y ]补= [ X ]补+ [ -Y ]补= [ X-Y ]补(mod M)两个数的补码之差等于两数之差的补码。
◆注意:参与运算的操作数均为补码,运算的结果仍然以补码表示。
运算时,符号位和数值位按同样的规则参加运算,结果的符号位由运算得出。
补码总是对确定的模而言,如果运算结果超过了模,则应将模(即进位)丢掉才能得到正确结果。
求15 –13 = ?(用补码)0000110100001111(15)(13)( 2 )000000100000111111110011+(15)补(-13)补( 2)补1进位111000000101111舍弃进位∵(15–13)补= (15 )补–(13)补= (15 )补+ (–13)补直接做减法运算转换为补码做加法运算◆注意:在进行二进制补码的加法运算时,被加数与加数的位数要相等,即让两个二进制数补码的符号位对齐。
两个二进制数的补码要采用相同的位数表示。
求13 –15 = ?(用补码)1111000100001101+(13)补(-15)补(-2)补0进位00011111110010∵(13-15 )补= (13 )补+ (–15)补求–13 –15 = ?(用补码)1111000111110011+(-13)补(-15)补(-28)补0进位11011100100111因为(-13-15 )补= (-13 )补+ (–15)补1舍弃进位求125+58 = ?(用补码)0011101001111101+(125)补( 58)补(183)补进位111101101111因为(125+58 )补= (125)补+ (58)补错误原因是:8位有符号数所能表示的补码数的最大值为127.这里,183 > 127,导致结果错误。
计算机组成原理课件第二章补码加减法运算
23
并行加法器进位链
C1 = A1B1+(A1⊕B1)C0=G1+P1C0
C2 = A2B2+(A2⊕B2) C1=G2+P2C1 =G2+P2(G1+P1C0) =G2+P2G1+P2P1C0
其结论也适用于定点整数。
例: x=0.1001, y=0.0101, 求 x+y。
解:
[x]补=0.1001, [y]补=0.0101
[x]补 + [y]补
[x+y ]补
0. 1 0 0 1 0. 0 1 0 1 0. 1 1 1 0
所以
x+y=+0.1110
例: x=+0.1011, y=-0.0101, 求 x+y。
随之扩大,既能判别是否溢出,又能指出结果的符号。
双符号位法也称为“变形补码”或“模4补码” 。 定点小数变形补码定义:
x
[x]补=
4+x
0 x<1 -1 x<0
(mod 4)
字长n+2定点整数,变形补码定义:
[x]补=
x 2n+2+ x
n
0 x<2
(mod 2 n+2
)
-2 nx<0
采用变形补码后数的表示: • 任何小于1的正数: 两个符号位都是“0”,即 00.x1x2...xn; • 任何大于-1的负数:两个符号位都是“1”,即 11.x1x2…xn
2.补码加法运算
补码加法的公式:
[ x ]补+[ y ]补=[ x+y ]补
《补码加减法运算》课件
方向调整结果的符号位。
补码减法运算规则
01
02
03
符号位参与运算
在补码减法中,符号位也 需要参与运算,正数和负 数的补码表示形式不同。
借位处理
在进行补码减法时,如果 最高有效位不够减,则需 要从符号位借位。
溢出判断与处理
与补码加法类似,如果结 果的符号位发生变化,则 说明发生了溢出,需要进 行溢出处理。
补码加减法运算规
02
则
补码加法运算规则
01
符号位参与运算
补码加法中,符号位需要参与运算,正数和负数的补码表示形式不同,
正数的补码就是其本身,负数的补码是其绝对值加1取反。
02
溢出判断
在补码加法中,如果结果的符号位发生变化,则说明发生了溢出。
03
溢出处理
当发生溢出时,需要将溢出位加到结果的最高有效位上,同时根据溢出
精度提升
随着数值精度的需求不断提 高,补码表示法的精度也将 得到进一步提升,以适应更 高精度的计算需求。
应用领域拓展
随着数字化时代的到来,补 码加减法运算将在更多领域 得到应用,如人工智能、物 联网、云计算等新兴领域。
THANKS.
综合运算电路的基本结构
综合运算电路的工作原理
由加法器和减法器组成,可以实现加法和 减法运算。
根据运算需求选择加法器或减法器进行运 算,输出结果。
综合运算电路的优点
可以实现多种运算,灵活性高。
综合运算电路的缺点
电路设计复杂,需要优化电路结构以降低 功耗和提高运算速度。
总结与展望
05
补码加减法运算的意义和作用
溢出处理
判断方法
通过观察运算结果的符号位和最高有效位的变化来判断是否发生了溢出。
(完整版)补码的加
一.补码的加、减运算在计算机中,通常总是用补码完成算术的加减法运算。
其规则是:[X+Y]补= [X]补+ [Y]补,[X-Y]补= [X]补- [Y]补= [X]补+ [-Y]补这表明,有了补码表示的被加(减)数和加(减)数,要完成计算补码表示的二数之和或二数之差,只需用二数的补码直接执行加减运算即可,符号位与数值位同等对待,一起参加运算,若运算结果不溢出,即不超出计算机所能表示的范围,则结果的符号位和数值位同时为正确值。
此外,还可以看到,实现减运算时,用的仍是加法器线路,把减数的负数的补码送加法器即可。
在有了一个数的补码之后,求这个数的负数的补码,是简单地把这个数的补码逐位取反再在最低位加1即可得到。
例如,[Y]补=101101,则[-Y]补=010011,这大大简化了加减运算所用的线路和加减运算的实现算法。
下面的问题是如何检查加减运算中的溢出问题。
通常有三种表述方式(说法):(1) 两个符号相同的补码数相加,如果和的符号与加数的符号相反,或两个符号相反的补码数相减,差的符号与减数的符号相同,都属于运算结果溢出。
这种判别方法比较复杂,要区别加还是减两种不同运算情况,还要检查结果的符号与其中一个操作数的符号的同异,故很少使用;(2) 两个补码数相加减时,若最高数值位向符号位送的进位值与符号位送向更高位的进位值不相同,也是运算结果溢出。
(3) 在采用双符号位(如定点小数的模4补码)运算时,若两个符号位的得值不同(01或10)则是溢出。
01表明两个正数相加,结果大于机器所能表示的最大正数,称为"上溢";10表明两个负数相加,结果小于机器所能表示的最小负数,称为"下溢";双符号位的高位符号位,不管结果溢出否,均是运算结果正确的符号位,这个结论在乘法运算过程中是很有实际意义的。
请注意,在采用双符号位的方案中,在寄存器和内存储器存储数据时,只需存一位符号,双符号位仅用在加法器线路部分。
补码加减法运算
补码加减法运算
首先,我们来了解一下补码的概念。
补码是将一个负数的绝对值按位取反,并在最低位加1、例如,对于8位二进制数,补码的规则如下:正数的补码是它本身。
负数的补码是将其绝对值的二进制表示按位取反,并在最低位加1
下面我们将分别介绍补码加法和补码减法的运算规则。
补码加法运算:
1.将两个补码数进行按位相加,从低位开始,逐位相加。
2.如果两个二进制位相加的结果为1和1,则将结果写成0,并向上一位进位1
3.最后,把进位的1加到结果的最高位。
例如,我们进行8位补码加法运算:
例如计算3+(-5):
按位相加:
--------------
将结果的1加到最高位:
--------------
补码减法运算:
补码减法可以通过补码加法来实现。
要计算A-B,首先要将B取反,即得到-B的补码,然后将A和-B的
补码进行按位相加。
例如,计算5-3:
按位相加:
--------------
将结果的1加到最高位:
--------------
总结:
补码加减法运算是计算机中常用的一种运算方法,可以通过按位相加
或相减的方式快速计算。
与其它计算方法相比,补码加减法具有简单、高
效的特点,并且可以统一处理正负数的运算。
因此,在计算机组成原理中,补码加减法是一个非常重要的概念。
补码的加减运算
错误原因是:
> 8位有符号数所能表示的补码 数的最大值为127.
>这里,183 > 127,导致结果
错误。
>我们把超出表示范围的这种 情 况称为溢出(Overflow)
补码的加减运算
求-105-50 = ?(用补码)
因为(-105-58 )补=(-105)补 +(-50)补
进位0 0 1111 1| o| o| l| o| l| l| l| (-105)# + |1|1|0|0|1|1|1|0| ( -50)补
补 Ci
I补码的加减运算
♦注意:
在进行二进制补码的加法运算时,被加数与加数 的位数要相等,即让两个二进制数补码的符号位 对齐。 两个二进制数的补码要采用相同的位数表示。
补码的加减运算
求13 - 15 = ?(用补码)
・・.(13-15 )补=(13 )补+ (—15)补
进位 0 0 0 0 0 0 1 o| o| o| o| l| l| o| l| (13)补
1 I 0| l| l| 0| 0| l| 0| l| (-155)补 VX
舍弃进位
错误原因是:
> 8位有符号数所能表示的补码 数的最小值为-128・
>这里,-155< -128,也产生
了溢出。 发生溢出的原因是因为和的 位数是固定的。
补码的加减运算
|3J
>溢出的判别对有符号数的运算是非常重要的,它表明 结
补码总是对确定的模而言,如果运算结果超过了 模, 则应将模(即进位)丢掉才能得到正确结果。
补码的加减运算
求15 - 13 = ?(用补码)
直接做减法运算
o| o| o| o| l| l| l| l| (15)
补码加减法运算(计算机组成原理)
1.0 0 1 1 0.0 1 1 0 1.1 0 0 1
∴x -y = 0.0111
5
溢出及与检测方法
1.概念
在定点小数机器中,数的表示范围为|x|<1。在运算过程中如出现大于1
的现象,称为 “溢出”。
下溢
上溢
机器定点小数表示
计算机组成原理
6
例:x=+0.1011, y=+0.1001, 求x+y。
补码加减法运算
1.原码加/减法运算
加法规则: 先判符号位,若相同,绝对值相加,结果符号不变; 若不同,则作减
法, |大| - |小|,结果符号与|大|相同。 减法规则:
两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取 反后的减数按原码加法进行运算。
计算机组成原理
1
2.补码加法运算 补码加法的公式:
[x]补 1. 0 0 1 1
+ [y]补 1. 0 1 0 1
[x+y]补 0. 1 0 0 0
两个负数相加的结果成为正数,这同样是错误的。
计算机组成原理
7
发生错误的原因,是因为运算结果超出编码所能表示的数字大小。 两个正数相加: 结果大于机器所能表示的最大正数,称为上溢; 两个负数相加:结果小于机器所能表示的最小负数,称为下溢。
时间延迟
典型门电路的逻辑符号和延迟时间
门的名称 门的功能 逻辑符号(正逻辑) 时间延迟
与非
NAND
T
或非
NOR
T
非
NOT
T
与
AND
2T
或
OR
2T
异或
XOT
3T
异或非
XNOR
2补码加减法运算
(1)单符号位检测方法1 (1)单符号位检测方法1 单符号位检测方法
设两数符号位分别为 S1、S2 和数符号位 SC
x 0 y 0
FA
z 0
溢出逻辑表达式为: 溢出逻辑表达式为:
V =S 1 S 2 S c + S 1 S 2 S c
判断电路
判断 电路
V
计算机组成原理
9
(2)单符号位检测方法2 单符号位检测方法2 符号位进位C 最高位进位C 符号位进位Cf,最高位进位Cn
∵ [x+y]补=[x]补+[ y]补 令 y = -x (mod 2)
∴ [0]补 =[x]补 + [ -x]补 故 =-[ [-x]补=-[ x]补 (mod 2)
减法运算化为加法完成。关键是求 减法运算化为加法完成。关键是求[-Y]补
计算机组成原理 5
例: 解:
=+0.1101, =+0.0110, x=+0.1101, y=+0.0110, 求 x-y。 [x]补=0.1101 [ y]补=0.0110 [ -y]补=1.1010 [x]补 +[ - y ] 补 [ x -y ] 补 0.1 1 0 1 1.1 0 1 0 1 0.0 1 1 1
13
双符号数溢出检测
0 0 .1 0 1 0 1 + 0 0 .0 1 0 0 0 0 0 .1 1 1 0 1
正常结果
1 1 .1 0 1 0 1 + 1 1 .1 1 0 0 0 1 1 1 .0 1 1 0 1
符号位进位舍去, 符号位进位舍去,正常结果
0 0 .1 0 1 0 1 + 0 0 .1 1 0 0 0 0 1 .0 1 1 0 1
计算机组成原理
16
补码加减法运算(计算机组成原理)页PPT文档
证明:
∵
令
∴
故
[x+y]补=[x]补+[ y]补 y= - x
(mod 2)
[0]补 =[x]补 + [ - x]补
[-x]补=-[ x]补
(mod 2)
减法运算要设法化为加法完成。
计算机组成原理
5
例: x=+0.1101, y=+0.0110, 求 x-y。
解: 例:
[x]补=0.1101 [ y]补=0.0110 [ -y]补=1.1010
[x]补 1. 0 0 1 1
+ [y]补 1. 0 1 0 1
[x+y]补 0. 1 0 0 0
两个负数相加的结果成为正数,这同样是错误的。
计算机组成原理
8
发生错误的原因,是因为运算结果超出编码所能表示的数字大小。 两个正数相加: 结果大于机器所能表示的最大正数,称为上溢; 两个负数相加:结果小于机器所能表示的最小负数,称为下溢。
解:
。
[x]补=0.1011 [x]补
+ [y]补 [x+y]补
[y]补=0.1001 0. 1 0 1 1 0. 1 0 0 1 1. 0 1 0 0
两个正数相加的结果成为负数,这显然是错误的
例:x= -0.1101, y= -0.1011, 求x+y。
解:
[x]补=1.0011
[y]补=1.0101
计算机组成原理
2
2.补码加法运算 补码加法的公式:
[ x ]补+[ y ]补=[ x+y ]补 (mod 2)
特点:不需要事先判断符号,符号位与码值位一起参加运算。 符号位相加后若有进位,则舍去该进位数字。
在模2意义下,任意两数的补码之和等于该两数之和的补码。 这是补码加法的理论基础。
2补码加减法运算
计算机组成原理
2
2.补码加法运算 2.补码加法运算 补码加法的公式: 补码加法的公式: [ x ] 补+[ y ] 补=[ x +y ] 补
(mod 2)
特点:不需要事先判断符号,符号位与码值位一起参加运算。 特点:不需要事先判断符号,符号位与码值位一起参加运算。 符号位相加后若有进位,则舍去该进位数字。 符号位相加后若有进位,则舍去该进位数字。 在模2意义下,任意两数的补码之和等于该两数之和的补码。 在模2意义下,任意两数的补码之和等于该两数之和的补码。 这是补码加法的理论基础。 这是补码加法的理论基础。
。
两个正数相加的结果成为负数, 两个正数相加的结果成为负数,这显然是错误的
x+y。 例:x= -0.1101, y= -0.1011, 求x+y。 解: [x]补=1.0011 [y]补=1.0101 [x]补 1. 0 0 1 1 + [y]补 1. 0 1 0 1 [x+y]补 0. 1 0 0 0
例: x=0.1001, y=0.0101, 求 x+y。 解: [x]补=0.1001, [x]补 + [y]补 [ x +y ] 补 =+0.1011, 例: x=+0.1011, 解: [y]补=0.0101 0. 1 0 0 1 0. 0 1 0 1 0. 1 1 1 0
所以
=+0.1110 x+y=+0.1110
模4补码加法公式:[x]补+[ y]补=[x+y]补 补码加法公式:
(mod 4)
两数变形补码之和等于两数和的变形补码,要求: 两数变形补码之和等于两数和的变形补码,要求: 两个符号位都看做数码一样参加运算; • 两个符号位都看做数码一样参加运算; 两数进行以4为模的加法,即最高符号位上产生的进位要丢掉。 • 两数进行以4为模的加法,即最高符号位上产生的进位要丢掉。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[-y]补=0.0110
[x]补 + [-y]补
[x-y]补
计算机组成原理
1.0 0 1 1 0.0 1 1 0 1.1 0 0 1
∴x -y = - 0.0111
6
溢出及与检测方法
1.概念
在定点小数机器中,数的表示范围为|x|<1。在运算过程中如出现大于1
的现象,称为 “溢出”。
下溢
上溢
机器定点小数表示
T通常采用一个 “与非”门或一 个“或非”门的 时间延迟来作为 度量单位。
20
(1)对一位全加器(FA)来说,Si的时间延迟为6T(每级异或门延迟3T); Ci+1的时间延迟为5T。
Ci+1
Si
≥1
=1
&
&
=1
计算机组成原理
Ci
Ai Bi
21
(2)n位行波进位加法器的延迟时间ta为: 考虑溢出检测时,有: ta=n·2T+9T=(2n+9)T
发生溢出的原因,是因为运算结果超出编码所能表示的数字大小。 两个正数相加: 结果大于机器所能表示的最大正数,称为上溢; 两个负数相加:结果小于机器所能表示的最小负数,称为下溢。
计算机组成原理
7
例:x=+0.1011, y=+0.1001, 求x+y。
解:
[x]补=0.1011
[y]补=0.1001
计算机组成原理
补码加减法运算
2020年5月26日
计算机组成原理
1
补码加减法运算
1.原码加/减法运算
加法规则: 先判符号位,若相同,绝对值相加,结果符号不变; 若不同,则作减
法, |大| - |小|,结果符号与|大|相同。 减法规则:
两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取 反后的减数按原码加法进行运算。
[y]补=1.0101
1 .1 0 1 0 1
[x]补 + [y]补
1. 0 0 1 1 1. 0 1 0 1
+ 1 .1 1 0 0 0
[x+y]补 0. 1 0 0 0
1 1 .0 1 1 0 1
两个负数相加的结果成为正数,这同样是错误的。
计算机组成原理
正常结果
8
2.溢出的检测方法
[x]补 + [y]补
计算机组成原理
13
双符号数溢出检测
0 0 .1 0 1 0 1 + 0 0 .0 1 0 0 0
0 0 .1 1 1 0 1
正常结果
0 0 .1 0 1 0 1 + 0 0 .1 1 0 0 0
0 1 .0 1 1 0 1
非正常符号位,溢出
计算机组成原理
1 1 .1 0 1 0 1 + 1 1 .1 1 0 0 0 1 1 1 .0 1 1 0 1
1 1 .0 1 1 0 1
Cf = 1,Cn = 1
1 .0 0 1 0 1 + 1 .1 1 0 0 0
1 .0 1 1 0 1
Cf = 0,Cn = 1
1 0 .1 1 1 0 1
Cf = 1,Cn = 0
计算机组成原理
10
从上面例中看到: 当最高有效位有进位而符号位无进位时,产生上溢; 当最高有效位无进位而符号位有进位时,产生下溢。 (简单地说是正数相加为负数或负数相加为正数则产生溢出)
符号位出现“10”,表示已溢出,负溢出。即结果小于-1
计算机组成原理
16
基本的二进制加法/减法器
1.一位全加器 逻辑方程
Si Ai Bi Ci
Ci1 Ai Bi ( Ai Bi )Ci
一位全加器真值表
输入
输出
Ai
Bi
Ci
Si
Ci+1
000
0
0
001
1
0
010
1
0
011
0
1
100
1
0
101
符号位进位舍去,正常结果
1 1 .0 0 1 0 1 + 1 1 .1 1 0 0 0 1 1 0 .1 1 1 0 1
非正常符号位,溢出
14
双符号位的含义如下:
Sf1Sf2 =00 结果为正数,无溢出
01
结果正溢
10
结果负溢
11 结果为负数,无溢出
即:结果的两个符号位的代码不一致时,表示溢出; 两个符号位的代码一致时,表示没有溢出。
采用变形补码后数的表示: • 任何小于1的正数: 两个符号位都是“0”,即 00.x1x2...xn; • 任何大于-1的负数:两个符号位都是“1”,即 11.x1x2…xn
模4补码加法公式:[x]补+[ y]补=[x+y]补 (mod 4)
两数变形补码之和等于两数和的变形补码,要求: • 两个符号位都看做数码一样参加运算; • 两数进行以4为模的加法,即最高符号位上产生的进位要丢掉。
计算机组成原理
23
并行加法器进位链
C1 = A1B1+(A1⊕B1)C0=G1+P1C0
C2 = A2B2+(A2⊕B2) C1=G2+P2C1 =G2+P2(G1+P1C0) =G2+P2G1+P2P1C0
C3 = A3B3+(A3⊕B3) C2=G3+P3C2 =G3+P3(G2+P2G1+P2P1C0) =G3+P3G2+P3P2G1+P3P2P1C0
公式证明: 只要证明[–y]补= –[y]补, 上式即得证。
证明:
∵
令
∴
故
[x+y]补=[x]补+[ y]补 y = -x
(mod 2)
[0]补 =[x]补 + [ -x]补
[-x]补=-[ x]补
(mod 2)
减法运算化为加法完成。关键是求[-Y]补
计算机组成原理
5
例: x=+0.1101, y=+0.0110, 求 x-y。
Cn-1 = Gn-1+Pn-1Gn-2+Pn-1Pn-2Gn-3 …+Pn Pn-1 …P1C0
……
Cn = Gn+PnGn-1+PnPn-1Gn-2 +PnPn-1Pn-2Gn-3…
+ PnPn-1 Pn-2 …P1C0
位数越长,进位链电路复杂度越高
通常按照4位一组进行分组运算
计算机组成原理
24
• 9T为最低位上的两极“异或”门再加上溢出“异或”门的总时间; • 2T为每级进位链的延迟时间。
当不考虑溢出检测时,有:ta=(n-1)·2T+9T
ta为在加法器的输入端输入加数和被加数后,在最坏的情况下加法器输出 端得到稳定的求和输出所需要的最长时间。
ta越小越好。
由一位全加器(FA)构成的行波进位加法器: 缺点: (1)串行进位,它的运算时间长; (2)只能完成加法和减法两种操作而不能完成逻辑操作。
随之扩大,既能判别是否溢出,又能指出结果的符号。
双符号位法也称为“变形补码”或“模4补码” 。 定点小数变形补码定义:
x
[x]补=
4+x
0 x<1 -1 x<0
(mod 4)
字长n+2定点整数,变形补码定义:
[x]补=
x 2n+2+ x
n
0 x<2
(mod 2 n+2
)
-2 nx<0
计算机组成原理
12
计算机组成原理
2
2.补码加法运算
补码加法的公式:
[ x ]补+[ y ]补=[ x+y ]补
(mod 2)
特点:不需要事先判断符号,符号位与码值位一起参加运算。 符号位相加后若有进位,则舍去该进位数字。
在模2意义下,任意两数的补码之和等于该两数之和的补码。 这是补码加法的理论基础。
补码加法的特点: (1)符号位要作为数的一部分一起参加运算; (2)在模2的意义下相加,即大于2的进位要丢掉。
+ [y]补
[y]补=00.1000 0 0. 1 1 0 0 0 0. 1 0 0 0 0 1. 0 1 0 0
符号位出现“01”,表示已溢出,正溢。即结果大于+1
例 x= -0.1100, y= -0.1000, 求x+y。
解:
[x]补=11.0100 [x]补
+ [y]补
[y]补=11.1000 1 1. 0 1 0 0 1 1. 1 0 0 0 1 0. 1 1 0 0
不管溢出与否,最高符号位永远表示结果的正确符号。
c0
溢出逻辑表达式为:V=Sf1⊕Sf2
x0 y0
FA
z0
式中:Sf1和Sf2分别为最高符号位和第二
c1
V
符号位,此逻辑表达式可用异或门实现。 x1
FA
z1
y1
计算机组成原理
15
例 x= +0.1100, y= +0.1000, 求x+y。
解:
[x]补=00.1100 [x]补
故溢出逻辑表达式为: V=Cf⊕Co
其中Cf为符号位产生的进位,Co为最高有效位产生的进位。
此逻辑表达式也可用异或门实现。
判断电路
V=C1⊕Co
c0
计算机组成原理
x0 y0
FA
z0
V
c1
x1 y1
FA
z1
11
(3)双符号位法 一个符号位只能表示正、负两种情况,当产生溢出时,符号位的含义就
会发生混乱。如果将符号位扩充为两位(Sf1、Sf2),其所能表示的信息量将