第三讲 定点运算(加减法)
计算机组成原理第二章(第三讲)
[例16] 参见图2.6,已知两个不带符号的二进制整 数A = 11011,B = 10101,求每一部分乘积项aibj 的值与p9p8……p0的值。 请同学们自己完成。
本讲总结
1. 溢出及其检测方法 2.基本的二进制加/减法器(难点,熟练掌握)
理解并熟练掌握图2.3
3.十进制加法器 4.原码并行乘法(难点,掌握) 理解并掌握图2.6
[x]补=0.1011 , [x ]补 + [y ]补
[ x+y] 补
无进位
[y]补=0.1001 0.1011 0.1001 1.0100
有进位
两正数相加,结果为负,显然错误。
--运算中出现了“上溢”
[又例] x=+0.1011, y=+0.0010, 求x+y。
[解:]
[x]补=0.1011 , [x]补 + [y]补 无进位
计算机组成原理
3
2.2.3 溢出概念与检验方法
两个正数相加,结果为负(即:大于机器
所能表示的最大正数),称为上溢。 两个负数相加,结果为正(即:小于机器 所能表示的最小负数),称为下溢。 运算出现溢出,结果就是错误的。
[例12] x=+0.1011, y=+0.1001,求x+y。
[解:]
计算机组成原理?第一章计算机系统概论?第二章运算方法和运算器?第三章存储系统?第四章指令系统?第五章中央处理器?第六章总线系统?第七章外围设备?第八章输入输出系统?第九章并行组织目录计算机组成原理3?上一讲回顾1
计算机组成原理
目录
☼
☼
☼ ☼ ☼ ☼ ☼ ☼ ☼
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章
现在我们计算一个n位的行波进位加法器的时间延迟。 假如采用图2.3(a)所示的一位全加器并考虑溢出检测,那么n 位行波进位加法器的延迟时间ta为 ta=n·2T+9T=(2n+9)T (2.24) 9T为最低位上的两极“异或”门再加正溢出“异或”门 的总时间,2T为每级进位链的延迟时间。 当不考虑溢出检测时,有 ta=(n-1)·2T+9T (2.25) ta意味着加法器的输入端输入加数和被加数后,在最坏 情况下加法器输出端得到稳定的求和输出所需的最长时间。 显然这个时间越小越好。注意,加数、被加数、进位与和数 都是用电平来表示的,因此,所谓稳定的求和输出,就是指 稳定的电平输出。
定点数运算
第三节定点数运算定点数运算包括移位、加、减、乘、除几种。
一、移位运算1.移位的意义移位运算在日常生活中常见。
例如15米可写作1500厘米,单就数字而言,1500相当于小数点左移了两位,并在小数点前面添了两个0;同样15也相当于1500相对于小数点右移了两位,并删去了小数点后面的两个0。
可见,当某个十进制数相对于小数点左移n位时,相当于该数乘以10n;右移n位时,相当于该数除以10n。
计算机中小数点的位置是事先约定的,因此,二进制表示的机器数在相对于小数点作n 位左移或右移时,其实质就便该数乘以或除以2n(n=1,2...n)。
移位运算又叫移位操作,对计算机来说,有很大的实用价值,例如,当计算机没有乘(除)运算线路时,可以采用移位和加法相结合,实现乘(除)运算。
计算机中机器数的字长往往是固定的,当机器数左移n位或右移n位时,必然会使其n 位低位或n位高位出现空位。
那么,对空出的空位应该添补0还是1呢?这与机器数采用有符号数还是无符号数有关,对有符号的移位叫算术移位。
2.算术移位规则对于正数,由于[x]原=[x]补=[x]反=真值,故移位后出现的空位均以0添之。
对于负数,由于原码、补码和反码的表示形式不同,故当机器数移位时,对其空位的添补规则也不同。
下表列出了三种不同码制的机器数(整数或小数均可),分别对应正数或负数,移位后的添补规则。
必须注意的是:不论是正数还是负数,移位后其符号位均不变,这是算术移位的重要特点。
不同码制机器数移位后的空位添补规则码制添补代码正数原码、补码、反码0原码0负数补码左移添0右移添1反码 1由上表可得出如下结论:(1)机器数为正时,不论左移或右移,添补代码均为0。
(2)由于负数的原码其数值部分与真值相同,故在移位时只要使符号位不变,其空位均添0。
(3)由于负数的反码其各位除符号位外与负数的原码正好相反,故移位后所添的代码应与原码相反,即全部添1。
(4)分析任意负数的补码可发现,当对其由低位向高位找到第一个“1”时,在此“1”左边的各位均与对应的反码相同,而在此“1”右边的各位(包括此“1”在内)均与对应的原码相同,即添0;右移时困空位出现在高位,则添补的代码应与反码相同,即添1。
定点运算和浮点运算
定点加减运算 1 补码加减法 数用补码表示,符号位参加运算. 数用补码表示,符号位参加运算. 实际操作能否只取决于操作码? 结果需不需修正? 结果需不需修正? 如何将减法转换为加法? 如何将减法转换为加法?
1. 补码加减运算的基本关系式 补码加减运算的基本关系式 ( X + Y )补 = X补 + Y补 (1) ) ( X - Y )补 = X补 + (-Y)补 (2) )
):操作码为 两数直接相加. 式(1):操作码为"加"时,两数直接相加. ):操作码为" 例. 求(X+Y)补
1) X=3 X补=0 0011 2) X= –3 X补=1 1101 Y=2 Y补=0 0010 Y= –2 Y补=1 1110 0 0101 +5补码) 1 1011 – 5补码) 补码) ( 补码 补码) ( 补码 4) X= –3 X补=1 1101 3) X= 3 X补=0 0011 Y= 2 Y补=0 0010 Y= –2 Y补=1 1110 0 0001 +1补码) 1 1111 –1补码) 补码) ( 补码 补码) ( 补码
(集中了正溢和负溢) 集中了正溢和负溢)
2. 硬件判断逻辑二(Cf与C的关系) 硬件判断逻辑二( 的关系) 的关系
(1)A=3 B=2 ) (2)A=10 B=7 ) 3+2: 0 0011 10+7: 0 1010 : 正确 C =1 1 0001 正溢 (3)A= -3 B= -2 ) (4)A= -10 B= -7 ) 1 1 -3+(-2): 1101 -10+(-7): 0110 : : Cf=1 11 11110 Cf=1 11 1001 C =1 1 1011 正确 C =0 0 1111 负溢 (5)A=6 B= -4 ) (6)A= -6 B=4 ) 0 6+(-4): 0110 -6+4: 1 1010 : : Cf=1 11 11100 Cf=0 0 0100 C =1 0 0010 正确 C =0 1 1110 正确
定点数的基本算术运算
5.混合表示法 ● 有些情况下,运算过程中为了既满足数值的动态范围又保证一定的精度,必须采用Q0与Q15之间
的表示方法。 ● 在做加、减运算时,如果两个操作数的定标不一样,在运算前要进行小数点的调整,为保证运算
精度,需要使Q值பைடு நூலகம்的数调整为与另一个数的Q值一样大。
返回本节
2 定点除法运算
● 在一般的DSP中,没有专门的除法指令。同样,在C54x中也没有提供专门 的除法指令。一般有两种方法来完成除法。一种是用乘法来代替,除以某 个数相当于乘以其倒数,所以先求出其倒数,然后相乘。这种方法对于除 以常数特别适用。另一种方法是使用条件减法SUBC指令,加上重复指令 RPT #15,重复16次减法完成无符号数除法运算。两种不同情况下的除法 程序。
定点数的基本算术运算
1 加法、减法和乘法运算
1.定点DSP中数据表示方法 ● 定点DSP芯片的数值表示是基于2的补码表示形式。数的定标有Q表示法和S表示法,表7-10列出
了16位数的16种Q表示和S表示,以及它们所能表示的十进制数范围。16位中有一个符号位、Q 个小数位和15-Q个整数位来表示一个数。
1.|被除数|<|除数|,商为小数 2.|被除数|≥|除数|,商为整数
返回本节
4.Q15定点小数乘法运算
● 两个16位整数相乘,乘积总是“向左增长”,这就意味着多次相乘后乘积将会很快超出定点器件 的数据范围。而且要将32位乘积保存到数据存储器,就要耗费两个机器周期以及两个字的程序和 RAM单元。然而,两个Q15的小数相乘,乘积总是“向右增长”,这就意味着超出定点器件数据 范围的将是不太感兴趣的部分。
3.16位定点整数乘法
● C54x中提供了大量的乘法运算指令,其结果都是32位,放在累加器A或 B中。乘数在C54x的乘法指令中很灵活,可以是T寄存器、立即数、存 储单元和累加器A或B的高16位。在C54x中,一般对数据的处理都当做 有符号数,如果是无符号数相乘,使用MPYU指令,这是一条专门用于 无符号数乘法运算的指令,其他指令都是有符号数的乘法。
第3讲 加与减-三年级上册数学讲义(含答案)
第3讲加与减(思维导图+知识梳理+例题精讲+易错专练)一、思维导图二、知识点梳理知识点一:连加运算1、在计算脱式计算连加时,按从左到右的顺序,先把前两个数相加,再加第三个数,也可以把三个数直接用一个竖式计算,相同数位对齐,从个位加起,哪一位上的数字满几十就要向前一位进几,不要认为满十进一。
2、在计算三位数连加时,当后两个数或第一个数与第三个数相加能够得到整百数或整千数时,可以先把这两个数相加,最后再加上剩下的那个数。
知识点二:连减运算用脱式计算连减时,按从左到右的顺序,先把前两个数相减,再减第三个数。
也可以先把后两个数相加,写在小括号里面,再用第一个数减去这两个数的和。
三位数连减的验算方法:运用连加进行验算,即把差和两个减数相加,看结果是否等于被减数。
知识点三:加减混合三位数加减混合运算的顺序:没有小括号的按从左到右的顺序依次计算,有小括号的先算小括号里面的,再算小括号外面的。
知识点四:里程表1、求两地间的路程,要找准起点,用较远的路程减去较近的路程就得到两地间的路程;2、根据里程表的读数或电表的读数解决问题时,先要弄清里程表或电表的读数所表示的意义,然后联系生活实际解决问题,即用当天的读数减去前一天的读数,就是当前行驶的里程数;用本月月底的电表读数减去前一个月月底的电表读数等于本阅的用电量。
三、例题精讲考点一:连加运算【典型一】超市运进苹果276箱,比运进的桃子少28箱,超市一共运进水果多少箱?【分析】根据“运进的苹果比运进的桃子少28箱”,用苹果的箱数加上28箱求出运进桃子的箱数,然后把运进桃子的箱数和苹果的箱数加在一起即可解答。
【解答】解:276+28+276=304+276=580(箱)答:超市一共运进水果580箱。
【典型二】水费:98元电费:298元燃气费:196元(1)妈妈大约要带多少元去缴费才够,在合适的答案后面打“√”。
200元400元600元(2)算一算,三项开支一共需要多少元?【分析】先求出这三种费用大约多少钱,把98看作100,298看作300,196看作200,所以大约需要100+300+200=600(元)。
定点加法减法运算(共10张PPT)
[解:] [x]补=0.1101 [y]补=0.0110,
[x]补
0.1101
+[-y]补
1.1010
[x-y]补 10.0111
所以 x-y=+0.0111
[-y]补=1.1010
在定点小数机器中,数的表示范围为|x|<1. 在运算过程中如出现大
数用补码表示时,减法运算的公式为
[x-y]补=[x]补-[y]补=[x]补+[-y]补 (2.18)
只要证明[-y]补=-[y]补,上式即得证。现证明如下:
∵
[x+y]补=[x]补+[y]补
(mod 2)
∴
[y]补 =[x+y]补-[x]补
(2.19a)
又∵
[x-y]补=[x+(-y)]补=[x]补+[-y]补
对[y]补包括符号位“求反且最末位加1”,即可得到[-y]补。写成运算表
达式,则为 [-y]补=﹁[y]补+2-n
(2.21)
[例10]
已知x1=-0.1110,x2=+0.1101, 求:[x1]补,[-x1]补,[x2]补,[-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)<0, 所以 0110, [-y]补=1.
大一倍。变形补码定义为 么(2+x+y)就一定是小于2而大于1的数,进位”2”必丢失. x 2>x≥0 数用补码表示时,减法运算的公式为
故溢出逻辑表达式为V=Cf ⊕Co,其中Cf为符号位产生的进位,Co为最高有效位产生的进位。
定点数的表示与运算
定点数的表示与运算定点数是计算机中常用的一种数值表示方式,它将数值的小数点固定在某个位置上,以便于计算机进行数值运算。
在计算机科学中,定点数的表示与运算是一个非常重要的概念,本文将从表示方式和运算方法两个方面进行介绍。
一、定点数的表示方式定点数的表示方式有两种:定点小数和定点整数。
定点小数是将小数点固定在某个位置上,以便于计算机进行数值运算。
例如,将小数点固定在第三位上,表示数值0.123456789就变成了123.456789。
定点整数是将整数的位数固定在某个位置上,以便于计算机进行数值运算。
例如,将整数的位数固定在第五位上,表示数值123456就变成了12345600。
二、定点数的运算方法定点数的运算方法包括加法、减法、乘法和除法。
其中,加法和减法的运算方法比较简单,只需要将两个数的小数点对齐,然后按照普通的加减法规则进行运算即可。
例如,计算123.456和789.012的和,只需要将小数点对齐,然后按照普通的加法规则进行运算,最终得到912.468。
乘法和除法的运算方法比较复杂,需要进行一定的转换。
乘法的运算方法是将两个数的小数点去掉,然后将它们相乘,最后将小数点插入到正确的位置上。
例如,计算123.456和789.012的积,只需要将小数点去掉,然后将它们相乘,得到97408.635072,最后将小数点插入到正确的位置上,得到97408.635072。
除法的运算方法是将两个数的小数点去掉,然后将它们相除,最后将小数点插入到正确的位置上。
例如,计算123.456除以789.012,只需要将小数点去掉,然后将它们相除,得到0.15625,最后将小数点插入到正确的位置上,得到0.156。
总之,定点数的表示与运算是计算机科学中非常重要的概念,它可以帮助我们更好地理解计算机中的数值计算。
在实际应用中,我们需要根据具体的需求选择合适的定点数表示方式和运算方法,以便于实现更加高效和精确的数值计算。
计算机组成原理第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
定点运算
定点运算定点加法、减法在上篇文章中计算机组成原理:数据与文字的表示方法,我们已经介绍了数的补码表示法,负数用补码表示后,就可以和正数一样来处理。
这样,运算器里只需要一个加法器就可以了,不必为了负数的加法运算,再配一个减法器。
定点数的加法、减法,实际上就是补码加法、减法。
补码加法补码加法运算基本公式:∙定点整数:[x+y]补[x+y]补 = [x]补[x]补 + [y]补[y]补(mod 2n+12n+1)∙定点小数:[x+y]补[x+y]补 = [x]补[x]补 + [y]补[y]补(mod 22)简单来说,只需将符号位和数值部分一起参与运算,并且将符号位产生的进位丢掉即可证明:(1)证明依据:补码的定义若定点整数的补码形式为x = x n xn x n−1xn−1x n−2xn−2……x1x1x0x0(x n x n 为符号位),则补码表示的定义是:(2)证明思路:分三种情况。
1. x、y均为正值(x﹥0,y﹥0)2. x、y一正一负(x﹥0,y﹤0 或者x<0,y>0)3. x、y均为负值(x<0,y<0)证明定点小数的补码加法:(定点整数的证明类似,此处不再证明)1、x﹥0,y﹥0[x]补[x]补 + [y]补[y]补 = x+y = [x+y]补[x+y]补(mod 22)2、x﹥0,y﹤0 (x<0,y>0 的证明与此类似)根据定义[x]补[x]补 = x,[y]补[y]补 = 2+y所以[x]补[x]补 + [y]补[y]补 = x+2+y = 2+(x+y)这个地方要考虑进位的问题。
当x+y>0 时,2+(x+y) > 2 ,进位 2 必丢失;故[x]补[x]补 + [y]补[y]补 = x+y = [x+y]补[x+y]补(mod 2)当x+y<0 时,2+(x+y) < 2 ;故[x]补[x]补 + [y]补[y]补 = 2+(x+y)= [x+y]补[x+y]补(mod 2)3、x<0,y<0根据定义[x]补[x]补 = 2+x,[y]补[y]补 = 2+y所以[x]补[x]补 + [y]补[y]补= 2+x+2+y= 2+(2+x+y)= 2+ [x+y]补[x+y]补(mod 2)= [x+y]补[x+y]补注:不懂mod 2 的可以转至上一篇计算机组成原理:数据与文字的表示方法查看补码的推导定点数补码加法举例补码减法补码减法运算基本公式:∙定点整数:[x−y]补[x−y]补 = [x]补[x]补 - [y]补[y]补 = [x]补[x]补 + [−y]补[−y]补(mod 2 n+12n+1)∙定点小数:[x−y]补[x−y]补 = [x]补[x]补 - [y]补[y]补 = [x]补[x]补 + [−y]补[−y]补(mod 2 2)证明:只需要证明[−y]补[−y]补 = - [y]补[y]补已证明[x+y]补[x+y]补 = [x]补[x]补 + [y]补[y]补故[y]补[y]补 =[x]补[x]补 + [y]补[y]补 - [x]补[x]补 = [x+y]补[x+y]补 - [x]补[x]补又[x−y]补[x−y]补 = [x+(−y)]补[x+(−y)]补 = [x]补[x]补 + [−y]补[−y]补故[−y]补[−y]补 = [x−y]补[x−y]补 - [x]补[x]补可得[y]补[y]补 + [−y]补[−y]补= [x+y]补[x+y]补 + [x−y]补[x−y]补 - [x]补[x]补 - [x]补[x]补= [x+y+x−y]补[x+y+x−y]补 - [x]补[x]补 - [x]补[x]补= [x+x]补[x+x]补 - [x]补[x]补 - [x]补[x]补= 0即证。
2-2 定点加减法运算
例1:已知:[A]原=1.01101,[B]原=0.01011 已知:[A]原=1.01101,[B]原 [A]原+[B]原 求:[A]原+[B]原
2、第二种算法
C’的基值补 的基值补 码的含义是 对C’的数值 的数值 部分求补
加
减 B0 → B0 是 A0=B0? 否 C’=A*-B* 是 C0=1 ? 否 C0=A0
其中A0、B0、C0为参与运算的 其中A0、B0、C0为参与运算的 A0 A、B的符号和补码加法后所得和 的符号。 C的符号。
判断溢出的电路图 补码加减法溢出判断方法 3、补码加减法溢出判断方法 A0 x=0.1001 、 、 y= 0.1010, 0.1010, 0.0101000, y]补 例21::已知 x=0.1001 、 y=0.1010,,用变形补码求 补 例 :已知 x=-0.0101001y= - Sf1 0.1010 用补码的加减法求 例3 已知 x=- - 0.0101000,求[ x + y] FA B0 是指运算结果超出机器字长所能表示的范围。 溢出是指运算结果超出机器字长所能表示的范围 溢出是指运算结果超出机器字长所能表示的范围。 ⊕ 并判断其溢出情况。 y]补并判断其溢出情况 并判断其溢出情况。 V y]补并判断其溢出情况 补并判断其溢出情况。 [ xA0 y]补 补 [x – y]补并判断其溢出情况。 。 [+ + y] x y]补 y]补并判断其溢出情况 A0’y]补 、 、[x –补并判断其溢出情况。 两个符号相同的数相加,可能产生溢出; 两个符号相同的数相加,可能产生溢出;两个符号 FA B0’ B0 Sf2 相异的数相加,不可能产生溢出。 相异的数相加,不可能产生溢出。 (1)单符号法 V=Af Bf Sf + Af Bf Sf (2)进位判断法 V= C Cf + C Cf
计算机组成原理第3章
补码加、减运算举例
【例】已知x =-0.10111,y=-0.10001,求 1/2(x+y) 。 解: ∵[x]变补=11.01001,[y]变补=11.01111, ∴[ 1/2x]变补=11.10101,[ 1/2y]变补=11.10111;[ 1/2x] 变补是对[x]变补右移一位得到的,由于移位时丢掉了最低位1, 所以对[x]变补右移一位得到的结果(11.10100)进行修正, 即在最低位加1,便得到[ 1/2x]变补。 [ 1/2(x+y)]变补= [ 1/2x]变补+[ 1/2y]变补=11.10101+ 11.10111=11.01100 溢出判断:由于结果的双符号位相同,未产生溢出,运算结果正 确
2、补码加、减运算具体实现
补码表示的数的加减运算可以采用同一个电路实现。其核 心部分是全加器(运算电路的延迟时间
则全加器的Si的时间延迟为6T(每级异或门的延迟为3T),Ci+1的 时间延迟为5T。 则:一个n位的行波进位加法器的时间延迟ta为: ta=n×2T+9T
原码一位乘法举例
举例:假定 X=0.1101 Y=0.1011
原码一位乘法实现电路
实现原理框图:
Cj A Af CR 加法器 =1 Cn C Cn 移 位 脉 冲
&
& Bf C f Cn CT Q
启动
时钟脉冲
B
结束
2.2 2、原码两位乘法原理
两位乘数的取值可以有四种可能组合,每种组合对应于以下操作: 00 相当于0×X,部分积Pi右移2位,不进行其它运算; 01 相当于1×X,部分积Pi+ X后右称2位; 10 相当于2×X,部分积 Pi+ 2X后右移2位; 11 相当于3×X,部分积 Pi + 3X后右移2位。 上面出现了 + 1X, + 2X, + 3X 三种情况,+X 容易实现,+2X可把X左移1 位得2X,在机器内通常采用向左斜1位传送来实现。可是+3X一般不能一次完成, 如分成两次进行,又降低了计算速度。解决问题的办法是备: 以 +(4X-X) 来 代替 +3X运算,在本次运算中只执行 -X, 而 +4X 则归并到下一步执行,因为 下一步运算时,前一次的部分积已右移了两位,上一步欠下的 +4X 在本步已 变成 +X。实际线路中要用一个触发器C来记录是否欠下+4X的操作尚未执行, 若是,则1→C。因此实际操作要用Yi-1 Yi C三位的组合值来控制乘法运算操 作,运算规则如表2.12所示。
3.1.1 定点加法和减法运算-3不带符号数
学生思考并回答:
00000000-11111111
即:0-255,共256个数值。
师生共同小结:
字长为n位的不带符号数的数值范围为:0—2n-1
思考:两个n位不带符号数相加和相减的情况是怎样呢?
讲解:
当相加时,X,Y都为正,则X+Y也为正,当X+Y和超过字长n位所允许的范围时,就向更高位进位,这时必须用多字节来表示。
教学重点不带符号数概念以及加减法运算教学难点不带符号数的减法运算和通过进位和借位确定符号教学方法教师讲解学生实践练习教学用具计算机多媒体幻灯片演示位字长的定点数的原码补码和反码的取值范围是什么
课时数NO:年月日星期
教学
内容
第3章运算方法和运算器
3.1定点加减法运算(第3课时)
教学
目的
要求
知识与技能:掌握学带符号数的运算
当相减时,其值的符号取决于两数绝对值的大小。在计算机中,对于减法运算一律采用补码运算,即用减数变补相加代替两数相减。
提问:两个不带符号数相减时,你有哪些方法可以使减数用补码表示呢?
讲解:
x-y=x+(-y)
[x-y]补=[x]补+[-y]补
=x+2n+(-y)
=2n+x-y
=2n-(y-x)
分析:
(1)x>y,则x-y无借位,差值为正,则
过程与方法:教师讲解,学生实践练习
情感态度与价值观:培养学生分析、理解问题的能力以及学习兴趣和积极性。
教学
重点
不带符号数概念以及加减法运算
教学
方法
教师讲解,学生实践练习
教学
用具
计算机、多媒体幻灯片演示
定点数的加减法
定点数的加减法定点数是一种用于表示实数的数学表示法,它在计算机科学和电子工程中被广泛使用。
定点数通过在数值中引入小数点的固定位置来表示实数。
定点数的加减法操作是定点数基本运算中最简单且常见的操作之一。
在定点数加减法中,需要考虑小数点的位置和进位问题。
我们需要确定定点数的小数点位置,通常是根据所需的精度和数值范围来确定的。
小数点的位置确定后,我们可以将定点数表示为两个部分:整数部分和小数部分。
在加法操作中,我们首先对整数部分进行相加,然后对小数部分进行相加。
如果小数部分相加的结果超过了小数点位数能够表示的范围,我们需要进行进位操作。
具体来说,我们需要将超出范围的值从小数部分加到整数部分。
然后,我们可以将整数部分和小数部分的和作为最终的加法结果。
在减法操作中,我们首先对整数部分进行相减,然后对小数部分进行相减。
如果小数部分的被减数小于减数,我们需要从整数部分借位。
具体来说,我们需要将整数部分减去一,并将借位加到小数部分上。
然后,我们可以将整数部分和小数部分的差作为最终的减法结果。
需要注意的是,在定点数的加减法操作中,由于定点数的表示范围是固定的,因此可能会发生溢出或下溢的情况。
溢出指的是结果超出了定点数能够表示的最大值,而下溢则是指结果小于定点数能够表示的最小值。
为了避免这些情况的发生,我们可以在进行加减法操作前进行溢出和下溢的检查,并采取相应的处理措施。
总结起来,定点数的加减法操作是一种基本的数学运算,但需要考虑小数点的位置、进位和借位等问题。
在进行加减法操作时,我们需要注意定点数的范围,并对溢出和下溢进行检查和处理。
定点数的加减法操作在计算机科学和电子工程中被广泛应用,它可以用于解决实际问题,提高计算的精度和效率。
2-3定点数加减法运算0
13
溢出判断方法(续)
溢出判断方法二——变形补码(双符号位)判断法
+7
+)+4
00111
00100 001011
+7 +)-4
00111 11100 100011
无进位,正溢出 -7 +)+4
有进位,无溢出 -7 11001
11001
00100 011101
V Sn1 Sn
+)-4
11100
110101
无进位,无溢出
有进位,负溢出 14
溢出和进位的区别
溢出标志OF和进位标志CF是两个意义不同的标志
•进位标志表示无符号数运算结果是否超出范围,运算结果 仍然正确。 •溢出标志表示有符号数运算结果是否超出范围,运算结果 已经不正确。 •通常处理器内部采用补码表示有符号数。
运算时,运算器根据运算结果,按照无符号数相应 设置进位标志CF;同时,根据是否超出有符号数的范 围设置溢出标志OF 应该利用哪个标志,则由程序员来决定。
四位先行进位CLA
Pi Gi 并行进位的思想是:根据参加运算的两个数的各位数值,直接 =1 & 确定每一位的进位值,所有位的进位同时产生,不用等待低位 进位,因而各位全加器可以同时运行。 Ai Bi Ai Bi 6
组内并行,组间串行的进位链
当位数增加时,进位形成逻辑的变量增多,进位信 号Ci的逻辑表达式也会变得越来越复杂,以至超出器 件规定的扇入数。因此实际的作法通常将加法器分组。 3、组内并行,组间串行的进位链
•认为是无符号数,就应该关心进位; •认为是有符号数,则要注意是否溢出 15
2.3.4 补码加减运算的逻辑实现
加法器∑:F=A+B。 ADD、SUB、1→C0:控 制信号 dst、src:数据输入端 PSW:标志寄存器,保存 运算结果的状态
3.1.1 定点加法和减法运算-1加法
师生共同分析
X为正,Y为负,∣X∣≥∣Y∣时,补码和与和的补码之间的关系
学生通过练习,掌握这种情况下的补码加法运算
(3)X为正数,Y为负数,且|Y|>|X|时。则有:
[X]补+[Y]补=X+2n+Y=2n+(X+Y)
=[X+Y]补(mod2n)
例3.2已知X=+0000111B,Y=-0010011B,进行补码加减法运算。
学生思考、回答并相互补充。
学生倾听,识记补码和原码,真码之间的关系,
板书:1、定点补码的加法运算
规则:[X]补+[Y]补=[X+Y]补(mod 2n)
-2n-1≤x<2n-1; -2n-1≤y<2n-1; -2n-1≤x+y<2n-1;
思考:x,y的符号有哪四种情况?对求和结果有什么影响呢?
讲解:
现根据X、Y的符号及绝对值的大小分4种情况予以证明。
作业:
P45 T1
学生思考并回答:
要再求一次补码,即反码加1的方法
师生相互讨论并总结
板
书
设
计
第3章运算方法和运算器
3.1定点加、减法运算
3.1.1定点补码的加减法
根据X、Y的符号及绝对值的大小分4种情况予以证明。
(1)X、Y均为正数,[X]补+[Y]补= [X+Y]补
(2)X为正数,Y为负数,且∣X∣≥∣Y∣时则有[X]补+[Y]补=[X+Y]补(mod2n)
=10001011+1
=10001100
所以,x+y=-0001100
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定点运算(一)
本讲主要内容
移位运算 补码加法 补码减法 益处概念与检测方法 基本的二进制加法/减法器
一、移位运算
1. 移位的意义
15 . m = 1500. cm
小数点右移 2 位
机器用语 左移 右移 15 相对于小数点 左移 2 位 ( 小数点不动 ) 绝对值扩大 绝对值缩小
2、补码加法运算
(3)x<0,y>0,则x+y>0或 x+y<0 这种情况和第2种情况一样,把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) 上式右边分为”2”和(2+x+y)两部分.既然(x+y) 是负数,而其绝对值又小于1,那么(2+x+y)就一定 是小于2而大于1的数,进位”2”必丢失.又因(x+ y)<0, 所以 [x]补+[y]补=2+(x+y)=[x+y]补
连同符号位一起相加,符号位产生的进位自然丢掉
结论: 至此证明了在模2意义下,任意两数的 补码之和等于该两数之和的补码。
其结论也适用于定点整数。
补码加法的特点: (1)符号位要作为数的一部分一起参加 运算; (2)在模2的意义下相加,即大于2的进 位要丢掉。
3、补码减法运算
公式: [x-y]补= [x]补+[-y]补 连同符号位一起相加,符号位产生的进位自然丢掉
最高符号位 代表其 真正的符号
举例 例 x=+01100,y=+01000 求 x+y
例 x=-1100,y=-1000 求 x+y
(3) 利用进位值的判别法
[x]补 0 0. 1 1 0 0 +[y]补 0 0. 1 0 0 0 0 1. 1 0 0 0 [x]补 1 1.0 1 0 0 +[y]补 1 1.1 0 0 0 1 0.1 1 0 0
算术移位 有符号数的移位
逻辑移位
逻辑左移
无符号数的移位
低位添 0,高位移丢
0
0 10110010 01011001 11011001(补码)
逻辑右移
例如
逻辑左移 算术左移 Cy
高位添 0,低位移丢
01010011 10100110 00100110
逻辑右移 算术右移 0
高位 1 移丢
01010011
补码
移位操作
机
器
数
对应的真值
移位前 左移一位
左移两位 右移一位 右移两位
1,1100110 1,1001100 1,0011000 1,1110011 1,1111001 机 器 数
– 26 – 52 – 104 – 13 –7
对应的真值 – 26 – 52 – 104 – 13 –6
反码
移位操作 移位前 左移一位
左移两位 右移一位
右移两位
1,1100101 1,1001011 1,0010111 1,1110010 1,1111001
3. 算术移位的硬件实现
0
0
0
1
0
(a)真值为正 (b)负数的原码 (c)负数的补码 (d)负数的反码
丢1 丢1 出错 影响精度 出错 影响精度 正确 影响精度 正确 正确
4. 算术移位和逻辑移位的区别
V
0
A
n
GA
GS
溢出 判断 0
加法器(n+1)
求补控制 逻 辑
X
n
A、X 均 n+1 位 用减法标记 GS 控制求补逻辑
∴A+B= 0.0110 例 19 设 A = –9,B = –5 验证 求 [A+B]补 解: [A]补 = 1 , 0 1 1 1 – 1001 + [B]补 = 1 , 1 0 1 1 + – 0101 [A]补 + [B]补 = 1 1 , 0 0 1 0 = [A + B]补 – 1110 ∴ A + B = – 1110
例 20
设机器数字长为 8 位(含 1 位符号位) 且 A = 15, B = 24,用补码求 A – B 解: A = 15 = 0001111 B = 24 = 0011000 [A]补 = 0, 0001111 [B]补 = 0, 0011000 + [– B]补 = 1, 1101000 [A]补 + [– B]补 = 1, 1110111 = [A – B]补 ∴ A – B = – 1001 = –9 9 11 练习 1 设 x = 16 y = 16 ,用补码求 x+y – 12 错 x + y = – 0.1100 = 16 练习 2 设机器数字长为 8 位(含 1 位符号位) 且 A = – 97,B = +41,用补码求 A – B A – B = + 1110110 = + 118 错
4 、溢出概念与检测方法
引入:可能产生溢出的情况:
•两正数加,变负数,正溢(大于机器所能表示的 最大数) •两负数加,变正数,负溢(小于机器所能表示的 最小数)
溢出判断方法
(1) 一位符号位判溢出
参加操作的 两个数(减法时即为被减数和“求补” 以后的减数)符号相同,其结果的符号与原操作
数的符号不同,即为溢出
移位操作 移位前 左移一位 左移两位
右移一位 右移两位
机 器 数 [A]原=[A]补 =[A]反 0,0011010 0,0110100 0,1101000 0,0001101 0,0000110
对应的真值 +26 + 52 +104 +13 +6
例17
设机器数字长为 8 位(含1位符号位),写出 A = –26时,三种机器数左、右移一位和两位后的表
在计算机中,移位与加减配合,能够实现乘除运算
2. 算术移位规则
符号位不变
码
正数
制
添补代码
0 0 左移 添 0 右移 添 1 1
原码、补码、反码 原 码 码 码
负数
补 反
例16
设机器数字长为 8 位(含1位符号位),写出 A = +26时,三种机器数左、右移一位和两位后的表 示形式及对应的真值,并分析结果的正确性。 A = +26 = +11010 解: 则 [A]原 = [A]补 = [A]反 = 0,0011010
从上面例中看到: 当最高有效位有进位而符号位无进位时,产生上溢; 当最高有效位无进位而符号位有进位时,产生下溢。 (简单地说是正数相加为负数或负数相加为正数则产 生溢出)
故溢出逻辑表达式为:
V=Cf⊕Co
其中Cf为符号位产生的进位,Co为最高有效位产生 的进位。此逻辑表达式也可用异或门实现。
判断电路
10100110
二、补码加/减法
1.原码加/减法运算
加法规则: 先判符号位,若相同,绝对值相加,结果符号不变; 同,则作减法, |大| - |小|,结果符号与|大|相同。 若不
减法规则:
两个原码表示的数相减,首先将减数符号取反,然后将被 减数与符号取反后的减数按原码加法进行运算。
公式:[x]补+[y]补 =[x+y]补 证明:假设︱x︱﹤1, ︱y︱﹤1, ︱x+y︱﹤1 现分四种情况来证明 (1)x﹥0,y﹥0,则x+y﹥0 [x]补=x, [y]补=y, [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 当x+y>0时,2 + (x+y) > 2,进位2必丢失,又因 (x+y)>0, 故 [x]补+[y]补=x+y=[x+y]补 当x+y<0时,2 + (x+y) < 2,又因(ቤተ መጻሕፍቲ ባይዱ+y)<0, 故 [x]补+[y]补=2+(x+y)=[x+y]补 所以上式成立
示形式及对应的真值,并分析结果的正确性。
解: 原码 A = – 26 = – 11010
移位操作
移位前 左移一位 左移两位 机 器 数
对应的真值
– 26 – 52 – 104 – 13 –6
右移一位
右移两位
1,0011010 1,0110100 1,1101000 1,0001101 1,0000110
x0 y0 判断 电路
FA
z0
V
(1) 单符号位法
V=Sf1⊕Sf2
c 0 x 0 y 0 c 1 x1 FA y1 z 1 V z 0
V=C1⊕Co
c0
x0 y0 FA z0 V z1
FA
c1
x1 y1 FA
(2) 双符号位法
(3) 进位值判别法
四. 补码加减法的硬件配置
基本补码加法减法器
行波进位补码加法减法器
举例
例 18 设 A = 0.1011,B = –0.0101 求 [A + B]补 验证 解: [A]补 = 0 . 1 0 1 1 0.1011 + [B]补 = 1 . 1 0 1 1 – 0.0101 [A]补 + [B]补 = 1 0 . 0 1 1 0 = [A + B]补 0.0110
单符号位法的硬件实现 Cf C0 0 0 正确(正数) 0 1 上溢 1 0 下溢 1 1 正确(负数) V=Cf ⊕ C0 其中Cf为符号位产生的进位, C0为最高有效位产生 V=1 有溢出 V=0 无溢出
(2) 两位符号位判溢出
[x]补' = x 4+x 1 >x ≥ 0 0 >x ≥ –1(mod 4)