定点补码的加减法规则

合集下载

2补码加减法运算详解

2补码加减法运算详解
[y]补=1.1011
[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]补, 上式即得证。 证明:

计算机系统 补码加减法运算

计算机系统  补码加减法运算
+ [B] = 1 1 1 0 0 [A] + [B] = 1 0 1 0 0 1
进位
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。

有关补码的知识及运算规则

有关补码的知识及运算规则

1.第一篇数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,"正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚."(摘自<<数学发展史>>有空大家可以看看哦~,很有意思的).为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制(23).下面进入正题.数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为(-127~-0 +0~127)共256个.? 有了数值的表示方法就可以对数进行算术运算.但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下: 假设字长为8bits( 1 )?10-? ( 1 )10?=? ( 1 )10?+ ( -1 )10?= ?( 0 )10(00000001)原?+ (10000001)原?= (10000010)原?= ( -2 )?显然不正确.? 因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码.反码的取值空间和原码相同且一一对应. 下面是反码的减法运算:?( 1 )10?-? ( 1 )?10=? ( 1 )?10+ ( -1 )?10= ?( 0 )10?(00000001)?反+ (11111110)反?=? (11111111)反?=? ( -0 ) ?有问题.( 1 )10?-? ( 2)10?=? ( 1 )10?+ ( -2 )10?= ?( -1 )10(00000001)?反+ (11111101)反?=? (11111110)反?=? ( -1 )?正确问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的.(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大).于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为:(-128~0~127)共256个.注意:(-128)没有相对应的原码和反码, (-128) = (10000000) ?补码的加减运算如下:( 1 )?10-? ( 1 )?10=? ( 1 )10?+ ( -1 )10?= ?( 0 )10(00000001)补?+ (11111111)补?=? (00000000)补?= ( 0 )?正确( 1 )?10-? ( 2)?10=? ( 1 )10?+ ( -2 )10?= ?( -1 )10(00000001)?补+ (11111110)?补=? (11111111)补?= ( -1 ) ?正确?? 所以补码的设计目的是:???? ⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计? 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。

3.2定点加、减法运算-计算机系统原理-刘均-清华大学出版社

3.2定点加、减法运算-计算机系统原理-刘均-清华大学出版社
◦ VF=S1⊕S2 ◦ 这种判断方法,运算器需要增加一位,来
扩展参加运算的数据的符号位。
3.2.1补码定点加、减法
3)利用数据编码的最高位(符号位)和次高位(数 据最高位)的进位状况判断
◦ 两个补码数进行加减时,若最高数值位向符号位 的进位值Cn-1与符号位产生的进位Cn输出值不一样, 则表明产生了溢出。这种溢出判断的逻辑表达式 为:
◦ 解:[X]补=0.1010101,[Y]补=1.1101101,[-Y]补 =0.0010011
◦ [X+Y]补=0.1010101+1.1101101=0.1000010 ◦ [X-Y]补=0.1010101+0.0010011=0.1101000
3.2.1补码定点加、减法
[例3-2]在8位补码机中计算40-12。
Y]补的加法运算,并设置标志寄存器中溢出、进位等标志。 ◦ ④控制信号F->X有效,将加法器F的输出结果送入寄存器X。减法运算结束。
3.2.2补码加减法运算器
利用图示的补码加减法运算器实现加法[X+Y]补的逻辑操作步骤如下:
◦ ①将运算数据[X]补输入寄存器X,[Y]补输入寄存器Y。 ◦ ②控制信号X->F有效,Y->F有效,且1->F无效,将[X]补和[Y]补送入加法器F的两个输入端。 ◦ ③加法器完成[X+Y]补的加法运算,并设置标志寄存器中溢出、进位等标志位。 ◦ ④控制信号F->X有效,将加法器F的输出结果送入寄存器X。加法运算结束。
◦ 补码的加减法公式是: ◦ [X+Y]补=[X]补+[Y]补 ◦ [X-Y]补=[X]补+[-Y]补 ◦ 公式的正确性可以从补码的编码规则得到
证明。在补码编码制方法下,补码的减法 运算统一采用加法处理,只需用加法器就 可以实现加减运算,有效地减少了硬件的 数量。

补码加减法运算

补码加减法运算

[-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.原码加/减法运算
加法规则: 先判符号位,若相同,绝对值相加,结果符号不变; 若不同,则作减
法, |大| - |小|,结果符号与|大|相同。 减法规则:

定点数加减法及其溢出判断原理

定点数加减法及其溢出判断原理

定点数加减法及其溢出判断原理定点数补码加减法及其溢出判断原理补码加减运算补码的数学表⽰设X为⼀个数的真值,M=2n(n为机器位数),则在数学表⽰上[X]补=M+X (modM),−2n−1≤X<2n−1补码加法[X]补+[Y]补=M+X+M+Y(modM)=M+X+Y(modM)=[X+Y]补可见,补码加法直接使⽤加法器相加即可补码减法[X]补−[Y]补=M+X−M−Y=X−Y(modM)=M+X+M−Y(modM)=[X]补+[−Y]补补码减法可以转化为补码加法,这也是计算机可以只设计加法器⽽不⼀定需要减法器的原因如何将[Y]补与[−Y]补进⾏转化是补码减法的重点设[Y]补=Y n Y n−1…Y1(1)当0≤Y<2n−1时[Y]补=[Y]原=0,Y n−1Y n−2…Y1[−Y]原=1,Y n−1Y n−2…Y1Y为正,-Y为负,则[−Y]补=1,¯Y n−1¯Y n−2…¯Y1+1(2)当 −2n−1<Y<0 时[Y]补=1,Y n−1Y n−2…Y1[Y]原=1,¯Y n−1¯Y n−2…¯Y1+1[−Y]原=0,¯Y n−1¯Y n−2…¯Y1+1Y为负,-Y为正,则[−Y]补=[−Y]原=0,¯Y n−1¯Y n−2…¯Y1+1综上所述:机器负数转换⽅法为[−Y]补=∼[Y]补+1溢出判断溢出产⽣的原因由于机器存放数字的⼆级制数码位数有限,当进⾏模M加法时会出现异常的符号改变现象,称为溢出。

溢出分为以下两种:1. 正溢:两个整数相加得到⼀个负数2. 负溢:两个负数相加得到⼀个负数溢出检测假设加法情况如下:操作数A:[X]补=X n X n−1…X1操作数B:[Y]补=Y n Y n−1…Y1两数和:[S]补=S n S n−1…S1⽅法⼀:直接检测当A>0,B>0但S<0时或A<0,B<0但S>0时显然发⽣了溢出,表⽰为:溢出=X n Y n ¯S n+¯X n¯Y n Sn⽅法⼆:进位检测假设两数运算时产⽣的进位分别是C n C n−1…C1那么根据刚才的讨论可以得到1. 当A>0,B>0但S<0时,A n=0,B n=0,S n=1,即n-1位发⽣进位,n位不可能进位,C n−1=1,C n=0;此时正溢2. 当A<0,B<0但S>0时,A n=1,B n=1,S n=0,即n位发⽣进位,n-1位不可能进位,C n=1,C n−1=0;此时负溢3. 当A>0,B>0但S>0时,A n=0,B n=0,S n=0,即均不进位,C n−1=0,C n=0;此时不溢出4. 当A<0,B<0但S<0时,A n=1,B n=1,S n=1,即均进位,C n−1=1,C n=1;此时不溢出综上所述,那么可以得到溢出=C n−1⊕C n⽅法三:双进位检测在运算时临时将两操作数的符号位复制⼀位补在最⾼位+1的位置这样运算就会变成操作数A:[X]补=X n X n X n−1…X1操作数B:[Y]补=Y n Y n Y n−1…Y1两数和:[S]补=S n2S n1S n−1…S1根据S n2S n1的不同结果,我们就可以判断是否发⽣溢出,这个原理与进位检测其实是相同的S n2S n1=00;⽆溢出S n2S n1=01;正溢S n2S n1=10;负溢S n2S n1=11;⽆溢出为了节约存储位数,最后保存结果时会忽略最⾼位的S n2的计算结果,仅在运算时扩充为双符号位Processing math: 100%。

计算机原理(岳乡成)补码加减法运算(公开课)

计算机原理(岳乡成)补码加减法运算(公开课)

范围,计算结果错误,就是所谓的溢出。
如何判断两个数在补码运算中是否会产生溢出: 判断的方法:双进位溢出判断法。 说明:使用这方法,要引入两个符号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的意义下相加,即符号位之前多出的位为模,做丢失处理。

补码的加减法运算

补码的加减法运算

[x-y]补= [x]补+ [-y]补 = 0.1 1 0 1+ 1.1 0 1 0= 0.0 1 1 1 所以 x-y=+0.0111 例2: x= -0.1101,y= -0.0110,求x-y=? 解: [x]补=1.0011 [y]补=1.1010 [-y]补=0.0110 [x-y]补= [x]补 + [-y]补 = 1.0 0 1 1+ 0.0110= 1.1 0 0 1 所以 x-y = 0.0111

例1:





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 y=-0.0101, 求 x+y。
[y]补=1.1011




补码加减法的运算规则
参加运算的数都用补码表示; 数据的符号与数值位一样参加运算; 求差时将减数求补,用求和代替求差;
运算结果为补码,如果符号位为0,表明运算结 果为正;符号位为1,则运算结果为负; 符号位的进位为模值,应该丢掉。




1、计算机中实现减法运算使用的方法是( C ) A.从被减数中减去减数 B.从减数中减去被减数再求反 C.转换为补码的加法运算 D.依减数的形式再选择一种适当的方法




1、 X=0.100101 , Y=0.001101 ,则 X+Y= 2、 X=0.1101 , Y=-0.0101 ,则X+Y= 3、 X=-0.10101 , Y=-0.01101 ,则 X+Y= 4、 X=0.10101 , Y=0.01010 ,则 X-Y=
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[X-Y]补=[X]补+[-Y]补=00100101+00010111
=00111100
定点加/减法运算
例:X=+0010011B
求[X+Y]补,[X-Y]补
解:X=+0010011B=00010011原=00010011补 Y=-0000111B=10000111原=11111001补 [-Y]补=00000111 [X+Y]补= [X]补+[Y]补 =00010011+11111001 =100001100 [X-Y]补= [X]补+[-Y]补 =00011010+00000111 =00011010
Y=-0000111B
课堂小结:
定点加法运算
[X+Y]补 =[X]补+[Y]补
定点减法运算
[X-Y]补=[X]补+[-Y]补
课堂作业:
1.用补码进行下列运算:已知X=+0100111, Y=+0010101,求[X+Y]补。
2.用补码进行下列运算:已知X=-0101100, Y=-0011001,求[X+Y]补,[X-Y]补。
第三章 运算方法和运算器
——定点加/减法运算
教学目标
知识与技能:
通过对定点补码的加法规则的学习,具备一定的运 算能力。
过程与方法:
通过分析定点补码的加法规则,引导学生参与教学; 过程中采用演示法及板书的讲授法,加强学生对规则的 理生的运算能力,养成认真仔细的学习习惯。
解:[X]补=00100110 [Y]补=00011011 [X+Y]补=[X]补+[Y]补 =00100110+00011011 =01000001
[X-Y]补=[X]补+[-Y]补
2、定点补码减法计算方法 [X-Y]补=[X]补+[-Y]补
注:(1)减法运算转为补码的加法运算
(2)[-Y]补的求法:将[Y]补连同符号位在内 的所有位一起取反,再加1
求[X-Y]补
[Y]补=00101010B
解:[-Y]补=11010110
[X-Y]补=[X]补+[-Y]补=01101010+11010110
=101000000
=01000000
[X-Y]补=[X]补+[-Y]补
例: X=+0100101B
求[X-Y]补
Y=-0010111B
解:[-Y]补=00010111
教学重难点
重点 (1)定点加法运算 (2)定点减法运算 难点 (1)定点减法的运算
3.1定点加/减法运算
机器数常用三种表示:
原码、反码、补码
计算机中的算术运算一般采用补码进 行, 用补码表示的两个操作数进行算术 运算, 符号位直接参加运算,结果仍为 补码

符号 位直接参加运算,结果仍为补码
定点加法运算
[X-Y]补=[X]补+[-Y]补
例: [X]补=00001011B
求[X-Y]补
[Y]补=11111011B
解:[-Y]补=00000101
[X-Y]补=[X]补+[-Y]补=00001011+00000101
=00010000
[X-Y]补=[X]补+[-Y]补
例: [X]补=01101010B
[X+Y]补= [X]补+[Y]补
例:[X]补= 01101010 [Y]补=0 0101010
求[X+Y]补
解: [X+Y]补=[X]补+[Y]补 =01101010+00101010 =10010100
[X+Y]补= [X]补+[Y]补
例:X=+0100110B Y=+0011011
求[X+Y]补
定点补码的加法规则:
[X+Y]补= [X]补+[Y]补 注:(1)补码运算时,符号位参与运算 (2)运算时,符号位产生的进位要去掉
[X+Y]补 =[X]补+[Y]补
例:[X]补=00010011 求[X+Y]补 解: [X+Y]补= [X]补+[Y]补 =0 0010011+0 0000111 =0 0011010 [Y]补=0 0000111
相关文档
最新文档