第2章 运算方法和运算部件_第1页
第2章 运算方法和运算部件_第2页
第2章 运算方法和运算部件_第3页
第2章 运算方法和运算部件_第4页
第2章 运算方法和运算部件_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、13.1 3.1 数值的表示方法和转换数值的表示方法和转换3.2 3.2 带符号的二进制数据在计算机中的表示带符号的二进制数据在计算机中的表示方法及加减法运算方法及加减法运算3.3 3.3 二进制乘法运算二进制乘法运算3.4 3.4 二进制除法运算二进制除法运算3.5 3.5 浮点的运算方法浮点的运算方法3.6 3.6 运算部件运算部件3.7 3.7 数据校验码数据校验码第三章第三章 运算方法和运算器运算方法和运算器2准备知识准备知识1 1、二进制算术运算二进制算术运算1)加法规则)加法规则”逢逢2进进1” 0+0=0 1+0=0+1=1 1+1=10例:例:32)减法规则)减法规则”借借1当

2、当2” 0-0=0 1-0=1 1-1=0 10-1=1例:例:43)乘法规则)乘法规则111010010004)除法规则)除法规则二进制乘法二进制乘法移位和加法移位和加法二进制除法二进制除法反方向移位和减法反方向移位和减法52、二进制逻辑运算、二进制逻辑运算1 1)三种基本的逻辑运算电路三种基本的逻辑运算电路00001001111与门与门数字逻辑电路是实现电子计数字逻辑电路是实现电子计算机的物质基础算机的物质基础。逻辑关系可以用逻辑代数逻辑关系可以用逻辑代数(布尔代数)表示(布尔代数)表示。真值表真值表是指由自变量的是指由自变量的各种取值组合而成与函数值各种取值组合而成与函数值之间的对应关系

3、表格之间的对应关系表格。A BA BY=ABY=AB0 00 00 10 11 11 11 01 00 01 10 00 0600011001111或门或门A BA BY=A+BY=A+B0 00 00 10 11 11 11 01 00 01 11 11 171001非门非门0011AAY 8 2) 2) 几种常用的组合逻辑电路几种常用的组合逻辑电路Xi 0 = 0 = XiXi 1 = 1 =iX9真值表与逻辑表达式之间的对应关系真值表与逻辑表达式之间的对应关系102)2)逻辑运算的化简逻辑运算的化简代数化简法:代数化简法: 代数化简法是直接利用布尔代数的基本公式和规代数化简法是直接利用布

4、尔代数的基本公式和规则进行化简的一种方法。则进行化简的一种方法。例:例: 化简逻辑函数化简逻辑函数F=AB+C+BCDF =AB+C+BCD =(AB+C+BC)+BCD =(AB+ C)+(BC+BCD) =(AB+C)+BC =AB+C卡诺图化简法:卡诺图化简法: 卡诺图化简法是借助于卡诺图的一种几何化简法。卡诺图化简法是借助于卡诺图的一种几何化简法。 代数化简法技巧性强,化简的结果是否最简代数化简法技巧性强,化简的结果是否最简不易判断;不易判断; 卡诺图化简法是一种肯定能得到最简结果的方卡诺图化简法是一种肯定能得到最简结果的方法,但是它只适用于变量较少的情况法,但是它只适用于变量较少的情

5、况123、加法器、加法器1 1、半加器、半加器 要求有两个输入端,用以两个代表数字要求有两个输入端,用以两个代表数字(A(A0 0,B B0 0) )的电位的电位输入;有两个输出端,用以输出总和输入;有两个输出端,用以输出总和S S0 0及进位及进位C C1 1。C C1 1=A=A0 0B B0 0S S0 0=A=A0 0B B0 0 13142 2、全加器(、全加器(1 1位)位) 三个输入端,以输入三个输入端,以输入A Ai i,B Bi i和和C Ci i,有两个输出端,即,有两个输出端,即S Si i及及C Ci+1i+1。全加器的逻辑表达式:全加器的逻辑表达式: S Si i=A

6、=Ai i B Bi i C Ci i C Ci+1i+1= =A Ai iB Bi i+A+Ai iC Ci i+B+Bi iC Ci i153 3、串行加法电路、串行加法电路16Xi 0 = 0 = XiXi 1 = 1 =iX加加/ /减法运算器减法运算器173.1 3.1 数值的表示方法和转换数值的表示方法和转换3.2 3.2 带符号的二进制数据在计算机中的表示带符号的二进制数据在计算机中的表示方法及加减法运算方法及加减法运算3.3 3.3 二进制乘法运算二进制乘法运算3.4 3.4 二进制除法运算二进制除法运算3.5 3.5 浮点的运算方法浮点的运算方法3.6 3.6 运算部件运算部

7、件3.7 3.7 数据校验码数据校验码第三章第三章 运算方法和运算器运算方法和运算器第一节第一节 数据的表示方法与转换数据的表示方法与转换 十进制:十进制:一、一、 数值型数据的表示与转换数值型数据的表示与转换 (N)10= Dm10m+Dm-110m-1+D1101+D0100+D-110-1+D-210-2+D-k10-k = Di10i 系数、位权、基数系数、位权、基数/底底1 1、数制、数制19 二进制二进制(N)2=Dm2m+Dm-12m-1+D121+D020+D-12-1+ D-22-2+D-k2-k =Di2i例3.1(1101.0101)2 =(123+122+021+120

8、+02-1+12-2+02-3+12-4)10 =(8+4+0+1+0+0.25+0+0.0625)10 =(13.312 5)1020 八进制和十六进制八进制和十六进制一个八进制数可表示为:一个八进制数可表示为:(N)(N)8 8= D= Di i8 8i i D Di i可为可为0 07 7八个数码中的任意一个八个数码中的任意一个一个十六进制数可表示为:一个十六进制数可表示为:(N)(N)1616= D= Di i1616i i D Di i可以是可以是0 01515共十六个数中的任一个共十六个数中的任一个 为书写和辨认方便,通常用为书写和辨认方便,通常用0 09 9和和A AF F分别表

9、示分别表示十六进制数十六进制数0 09 9和和10101515?为何要引入八进制和十六进制为何要引入八进制和十六进制 kmi kmi21 K进制进制一个一个K K进制数可表示为:进制数可表示为:( (N)N)k k= = D Di ik ki i D Di i可为可为0 0k-1k-1这这k k个数码中的任意一个个数码中的任意一个2 2、不同数制之间的转换、不同数制之间的转换(1) K(1) K进制数向十进制的转换进制数向十进制的转换 m-1m-1 N = Di N = Di * * WiWi i= -k i= -k 规则:规则:各位对应的十进制数值之和;各位对应的十进制数值之和;某一位所对应

10、的十进制数值为某一位所对应的十进制数值为其系数其系数与与其位权其位权之积。之积。 kmi22(2)(2)二进制数、八进制数和十六进制数之间的转换二进制数、八进制数和十六进制数之间的转换例例3.4(1 101.010 1)2=(001 101.010 100)2=(15.24)8例例3.5(1 1101.0101)2=(0001 1101.0101)2=(1D.5)16例例3.6(15.24)8=(001 101.010 100)2=(1101.0101)2八进制数与十六进制数之间的转换八进制数与十六进制数之间的转换23(3) (3) 十进制数转换成二进制数十进制数转换成二进制数整数整数规则:连

11、续除规则:连续除2直直至至0,倒倒 取余取余。24例例 将将(105)10转换成二进制。转换成二进制。2 105 余数余数结果结果 2 521最低位最低位 2 260 2 130 2 61 2 30 2 11 01最高位最高位得出:得出:(105)10=(1101001)225小数小数规则:小数部分连续乘规则:小数部分连续乘2直直至至0,顺顺 取整。取整。例例3.8 3.8 将将(0.3125)(0.3125)1010和和(0.3128)(0.3128)1010转换成二进制数转换成二进制数( (要要求求4 4位有效位位有效位) )。 结果结果 0.31252最高位最高位 0 .62502 1

12、.25002 0 .50002最低位最低位 1 .0000得出得出:(0.312 5)10=(0.0101)2 结果结果 0.31282最高位最高位 0 62562 1 25122 0 50242最低位最低位 1 0048得出得出:(0.312 8)10=(0.0101)2 26(4) (4) 十进制数转换成八进制数、十六进制数十进制数转换成八进制数、十六进制数例:例: 将将(13.312 5)10转换成八进制数转换成八进制数P623 3、数据符号的表示、数据符号的表示数据的数值通常以正数据的数值通常以正(+)(+)负负(-)(-)号后跟绝对值来表示,称之为号后跟绝对值来表示,称之为“真值真值

13、”;在计算机中正负号也需要数字化,一般用在计算机中正负号也需要数字化,一般用0 0表示正号,表示正号,1 1表示表示负号;负号;正号有时可省略。正号有时可省略。 27二、二、 十进制数的编码与运算十进制数的编码与运算在计算机中采用在计算机中采用4 4位二进制码对每个十进制数位进行位二进制码对每个十进制数位进行编码编码根据表示一位十进制数的二进制码的每一位有无确根据表示一位十进制数的二进制码的每一位有无确定的权,可以分为有权码和无权码定的权,可以分为有权码和无权码运算规则运算规则 编码不同,运算规则也就不同编码不同,运算规则也就不同28十进制数8421码2421码5211码4311码00 0 0

14、 00 0 0 00 0 0 00 0 0 010 0 0 10 0 0 10 0 0 10 0 0 120 0 1 00 0 1 00 0 1 10 0 1 130 0 1 10 0 1 10 1 0 10 1 0 040 1 0 00 1 0 00 1 1 11 0 0 050 1 0 11 0 1 11 0 0 00 1 1 160 1 1 01 1 0 01 0 1 01 0 1 170 1 1 11 1 0 11 1 0 01 1 0 081 0 0 01 1 1 01 1 1 01 1 1 091 0 0 11 1 1 11 1 1 11 1 1 1有权码有权码29无权码无权码十进

15、制数余3码格雷码(1)格雷码(2)00 0 1 10 0 0 00 0 0 010 1 0 00 0 0 10 1 0 020 1 0 10 0 1 10 1 1 030 1 1 00 0 1 00 0 1 040 1 1 10 1 1 01 0 1 051 0 0 01 1 1 01 0 1 161 0 0 11 0 1 00 0 1 171 0 1 01 0 0 00 0 0 181 0 1 11 1 0 01 0 0 191 1 0 00 1 0 01 0 0 030第二节第二节 带符号的二进制数据在计算机中带符号的二进制数据在计算机中的表示方法及加减法运算的表示方法及加减法运算 机器数

16、:在计算机中表示的带符号的二进制数。机器数:在计算机中表示的带符号的二进制数。真值:机器数所表示的数的实际值。真值:机器数所表示的数的实际值。机器数有三种表示方式:原码、补码和反码机器数有三种表示方式:原码、补码和反码 1 定点小数原码定义定点小数原码定义 若x=x0. x1 . xn ,x原=x 0 x 11x=1|x| -1x 02 定点整数原码定义定点整数原码定义若x=x0 x1 . xn ,x原=x 0 x 2n2nx=2n+|x| -2n x 0例例:x=0.1101,则x原=0.1101 x=0.1101,则x原=1.1101例例:x=1101,则x原=01101 x=1101,则

17、x原=111011 1、原码表示法、原码表示法(Sign-Magnitude Representation)一、一、 原码、补码、反码及其加减运算原码、补码、反码及其加减运算 3 3 原码表示的特点原码表示的特点 与真值转换关系:符号位:正数与真值转换关系:符号位:正数-“-“0 0”,负数,负数- -“1 1” +0+0原原= =0 00 000 0000 000 000,-0-0原原= =1 10 000 0000 000 000 优点:优点: 简单直观简单直观 缺点:用原码进行加减运算不方便缺点:用原码进行加减运算不方便2、补码表示法、补码表示法(Twos Complement Repr

18、esentation)1 1 定点小数补码定义定点小数补码定义 若x=x=x0. x1 . xn , x补=x 0 x 12x=2|x| -1 x 0(mod 2)2 定点整数补码定义 若x= x0 x1 . xn ,x补=x 0 x 2n2n+1+x=2n+1-|x| -2n x 0(mod 2n+1)例例:x=0.1101,则x补=例例:x=1101,则x补=0.1101x=0.1101,则x补=10+(0.1101)=10 | 0.1101 | =1.00110 1101x=1101,则x补=24+1+(1101)=1000001101 =1 0011(mod 2)(mod 2)(mod

19、 25)(mod 25)34引入补码:引入补码:使得加、减法能够得到统一,能够解决机使得加、减法能够得到统一,能够解决机器内部数值连同符号位一起参于运算的问题。器内部数值连同符号位一起参于运算的问题。思想:思想:6-36-36+96+9 3 补码表示的特点 1)与真值转换)与真值转换:符号位:符号位: 正数正数-“0”,负数,负数-“1” 其它数据位:正数其它数据位:正数-不变,负数不变,负数-模减绝对值模减绝对值 (按位取反后在末尾上加(按位取反后在末尾上加1) 2)0的补码唯一的补码唯一: +0补补=00 000 000,0补补=00 000 000 3)已知已知x补补,求,求x原原的方法

20、的方法 对于正数:对于正数: x原原= x补补 对于负数:对于负数: x原原= x补补补补4)符号位与数值位一样参加运算)符号位与数值位一样参加运算5)减法化为补码的加法来解决。)减法化为补码的加法来解决。36 在计算机中,通常总是用补码完成算术的加减法运算。在计算机中,通常总是用补码完成算术的加减法运算。简化了运算器的设计。简化了运算器的设计。规则:规则:X+YX+Y补补=X=X补补+Y+Y补补 ,X-YX-Y补补=X=X补补-Y-Y补补=X=X补补+-Y+-Y补补 371 定点小数反码定义定点小数反码定义若x=x0. x1 . xn , x反=x 0 x 1(22n)+x -1 x 02

21、定点整数反码定义定点整数反码定义若x=x0 x1 . xn ,x补=x 0 x 2n(2n+11)+x 2n x 0例例:x=0.1101,则x反=0.1101x=0.1101,则x反=(100.0001)+(0.1101)3. 反码表示法反码表示法与真值转换关系:符号位:正数与真值转换关系:符号位:正数-“0”,负数,负数-“1” 其它数据位:其它数据位:按位求反按位求反+0反反= 00000000 ,0反反= 11111111补码和反码公式比较:补码和反码公式比较: x反反= (2)+x x补补= 2+x 得到:得到: x补补= x反反+ x补补= x反反+ 3 反码表示的特点反码表示的特

22、点39 由于补码表示对加减法运算十分方便,因此目前机器由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用中广泛采用补码表示法。在这类机器中,数用补码补码表表示示、存储存储、运算运算。 也有些机器,数用也有些机器,数用原码原码进行进行存储存储和和传送传送,运算运算时改用时改用补码补码。 还有些机器在做还有些机器在做加减加减法时用法时用补码补码运算,在做运算,在做乘除乘除法时法时用用原码原码运算。运算。40解:X = 0 0 0 1 0 0 1 Y = + 0 01 0 1 0 0 X原=1 0 0 0 1 0 0 1, Y原= 0 0 0 1 0 1 0 0=

23、 Y补 X补=1 1 1 1 0 1 1 1, Y补=1 1 1 0 1 1 0 0X+Y补 0 0 0 0 1 0 1 1 例:例:X=9,Y=+20,求求X+Y,XY X补 1 1 1 1 0 1 1 1+ Y补 0 0 0 1 0 1 0 0XY补 1 1 1 0 0 0 1 1 X补 1 1 1 1 0 1 1 1 + Y补 1 1 1 0 1 1 0 0 X+Y= + 0 0 0 1 0 1 1 =(+11)10X Y= 0 0 1 1 1 0 1 =(29)10XY原 = 1 0 0 1 1 1 0 1 11(mod 28)41二、二、 加减运算的溢出处理加减运算的溢出处理溢出溢出

24、:运算结果超出机器数的表示范围。:运算结果超出机器数的表示范围。上上溢:两个溢:两个正数正数相加,结果相加,结果大于大于机器所能表示的机器所能表示的最大正数最大正数下下溢:两个溢:两个负数负数相加,结果相加,结果小于小于机器所能表示的机器所能表示的最小负数最小负数42 9+5=14 (-9)+(-5)= -14 12+7=19(溢出) 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0+ 0 0 1 0 1 + 1 1 0 1 1 +) 0 0 1 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 0 1 1 (-12)+(-7)=-19(溢出) 14-1=13 -14+1=

25、 -13 1 0 1 0 00 1 1 1 0 1 0 0 1 0 1 1 0 0 1 + 1 1 1 1 1 +) 0 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1、和得出正确结果;和为溢出。43(1) 溢出条件:fAfBfS+fAfBfS (2) 溢出条件:CCf(3) 采用双符号位fS1fS2,溢出条件=fS1fS2+fS1fS2 变形补码变形补码44 (1)参与运算的操作数用补码表示。)参与运算的操作数用补码表示。 (2)符号位作为数的一部分一起参与运算。)符号位作为数的一部分一起参与运算。 (3)符号位采用变形补码表示时,溢出表达式为)符号位采用

26、变形补码表示时,溢出表达式为 V=Sf1 Sf2 ;符号位采用单符号表示时,溢出表;符号位采用单符号表示时,溢出表 达式为达式为V=Cf C C0。 由于数据以补码形式存储,各位求反加由于数据以补码形式存储,各位求反加1 1操作也操作也易于实现,且符号位既不单独处理,也无需按参加易于实现,且符号位既不单独处理,也无需按参加运算的数的符号决定怎样运算,十分方便,故大多运算的数的符号决定怎样运算,十分方便,故大多数计算机均采用补码加(减)法运算。数计算机均采用补码加(减)法运算。补码加(减)法运算规则补码加(减)法运算规则:45三、三、 定点数与浮点数定点数与浮点数 定点格式定点格式( (Fixe

27、d-Point Representation)Fixed-Point Representation) 浮点格式浮点格式( (Floating-Point Representation)Floating-Point Representation)计算机中常用的数据表示格式计算机中常用的数据表示格式( (优缺点优缺点) ):1 1、定点数、定点数定点数是指小数点固定在某个位置上的数据;定点数是指小数点固定在某个位置上的数据;有定点小数和定点整数两种表示形式。有定点小数和定点整数两种表示形式。462 2、浮点数、浮点数浮点数是指小数点位置可浮动的数据。浮点数是指小数点位置可浮动的数据。表示:表示:N

28、=MREN为浮点数、为浮点数、M(mantissa)为尾数为尾数E(exponent)为阶码、为阶码、R(radix)称为称为“阶的基数阶的基数(底底)”MS E M1位位 n+1位位 m位位 问题提出问题提出:1101.101= 0.11011101 24 = 1.101101 23 =11011101 2347浮点数规格化表示浮点数规格化表示( (尾数尾数) ):绝对值为=0.5(0除外)。形式为:0.1。非规格化转化为规格化非规格化转化为规格化 P71P71机器零:机器零:当一个浮点的尾数为0,不论阶码为何值;或当阶码的值比阶码的最小值还小,不论尾数为何值,视为机器零SEM31 30 2

29、3 22 032位浮点数SEM63 62 52 51 064位浮点数48阶码的表示:阶码的表示:采用移码方式采用移码方式X移=2n+X-2nX2n补码与移码作比较:补码与移码作比较:X X补补= = X X0X0X2 2n n 2 2n+1n+1+X+X-2-2n nXX0 0 当当0X0X2 2n n时,时,X X移移=2=2n n+X= 2+X= 2n n+ +X X补补 当当- 2- 2n nXX0 0时时X X移移=2=2n n+X=(2+X=(2n+1n+1+X)-2+X)-2n n= =X X补补-2-2n n因此:把因此:把X X补补的符号位取反,即得的符号位取反,即得X X移移

30、。例:例: X=+1011X=+1011X X补补=01011=01011X X移移=11011=11011 X=-1011 X=-1011X X补补=10101=10101X X移移=00101=0010149移码的特点:移码的特点:P71阶码为什么通常用移码表示?阶码为什么通常用移码表示? 移码表示法可将具有正、负值的阶码在数轴上移到正数范围内,移码因此而得名,即移码是在原来的数值部分上加上了一个固定的偏移值; 对于从+128到128,数字是从大到小排列的,只有移码能直接反映出这一大小关系,只有移码能像无符号数一样直接进行大小比较。 其实移码是在补码的最高位加1,因此移码的求得只须改变补码

31、的符号位即可,故移码又称为增码。50计算机中数据的计算机中数据的数值范围数值范围 和和精度精度 数值范围是指机器所能表示的一个数的最大值和最数值范围是指机器所能表示的一个数的最大值和最小值之间的范围小值之间的范围 数据精度是指一个数的有效位数。数据精度是指一个数的有效位数。51第三节第三节 二进制乘法运算二进制乘法运算 一、定点数一位乘法一、定点数一位乘法1、定点原码一位乘法、定点原码一位乘法两个原码数相乘两个原码数相乘假设:假设:X原=X0X1X2Xn Y原=Y0Y1Y2Yn则:则:XY原=X原Y原 =(X0 Y0)(X1X2Xn)(1Y2Yn)52人工手算过程人工手算过程例:例:X=0.1

32、101,Y=0.1011,计算乘积XY。解解: : 0 . 1 1 0 1 0 . 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 . 1 0 0 0 1 1 1 1符号为正 即XY=0.1000111153机器实现原码乘法的逻辑框图机器实现原码乘法的逻辑框图54 原码一位乘是通过循环迭代的办原码一位乘是通过循环迭代的办法实现的;每次迭代得到的部分积法实现的;每次迭代得到的部分积(P0(P0,P1,P1,,PnPn) ) 表示为:表示为:P0=0P1=(P0+XYn)2-1P2=(P1+XYn-1)2-1Pi+1=(Pi+XYn-i)2-1Pn=(Pn-1+

33、XY1)2-155 部分积 乘数0 0 0 0 0 0 1 0 1 1+X0 0 1 1 0 1 0 0 1 1 0 1 右移1位 0 0 0 1 1 0 1 1 0 1 1(丢失)+X 0 0 1 1 0 1 0 1 0 0 1 1 右移1位 0 0 1 0 0 1 1 1 1 0 1(丢失)+0 0 0 0 0 0 0 0 0 1 0 0 1右移1位 0 0 0 1 0 0 1 1 1 1 0(丢失)+X 0 0 1 1 0 1 0 1 0 0 0 1右移1位 0 0 1 0 0 0 1 1 1 1 1(丢失)乘积高位 乘积低位561、定点补码一位乘法、定点补码一位乘法(1)(1)补码与真

34、值的关系补码与真值的关系设X补=X0.X1X2Xn,X=-X0+ Xi2-i=-X0+0.X1X2Xn n1i(2) (2) 补码的右移补码的右移在补码运算的机器中,不论数的正负,在补码运算的机器中,不论数的正负,连同符号位将数右连同符号位将数右移一位,并保持符号位不变移一位,并保持符号位不变,相当于乘,相当于乘1/21/2(或除(或除2 2)1/2X补补=X0. X0X1X2Xn57(3) (3) 补码一位乘法补码一位乘法设被乘数设被乘数X补补=X0.X1X2Xn,乘数乘数Y补补=Y0.Y1Y2Yn,则则: XY补补=X补补(-Y0+ Yi2-i) n1i例: 设X=-0.1101,Y=0.

35、1011即:X补=11.0011,Y补=Y=0.1011,求XY补计算结果:XY补=1.01110001 XY=-0.10001111 58例: X=-0.1101,Y=-0.1011即:X补=11.0011 Y补=11.0101 求XY补 计算结果: XY补=0.10001111 59布斯公式布斯公式XY补=X补(-Y0+ Yi2-i)=X补-Y0+Y12-1+Y22-2+Yn2-n=X补-Y0+(Y1-Y12-1)+(Y22-1-Y22-2)+(Yn2-(n-1)-Yn2-n)=X补(Y1-Y0)+(Y2-Y1)2-1+ +(Yn-Yn-1)2-(n-1) +(0-Yn)2-n=X补 (Y

36、i+1-Yi)2-i 乘数的最低乘数的最低1位为位为Yn,在其后面再添加,在其后面再添加1位位Yn+1,其值为其值为0 n1i n1i60将上式加以变换:机器执行顺序求出每一步的部分积:P0补=0P1补=P0补+(Yn+1-Yn)X补2-1 Yn+1=0P2补=P1补+(Yn-Yn-1)X补2-1Pi补=Pi-1补+(Yn-i+2-Yn-i+1)X补2-1Pn补=Pn-1补+(Y2-Y1)X补2-1Pn+1补=Pn补+(Y1-Y0)X补=XY补 例P7861例例3.35:设设X=-0.1101,Y=0.1011,即即X补补=11.0011,Y补补=0.1011 ,-X=00.1101 求求XY

37、补补.计算过程如下计算过程如下:0 0 0 0 0 0 0. 1 0 1 1 0 初始值,最后一位补0 0 0 1 1 0 1 Y5Y4=01 +-X补0 0 1 1 0 10 0 0 1 1 0 1 0 1 0 1 1 右移一位0 0 0 0 0 0 Y4Y3=11 +00 0 0 1 1 00 0 0 0 1 1 0 1 0 1 0 1 右移一位1 1 0 0 1 1 Y3Y2=10 +X补1 1 0 1 1 01 1 1 0 1 1 0 0 1 0 1 0 右移一位 0 0 1 1 0 1 Y2Y1=01 +-X补0 0 1 0 0 00 0 0 1 0 0 0 0 0 1 0 1 右移

38、一位1 1 0 0 1 1 Y1Y0=10 +X补1 1 0 1 1 1 0 0 0 1+部分积 乘数Y Yi Yi+1 说明乘积高位 乘积低位XY补=1.01110001, XY=-0.1000111162二、定点数二位乘法二、定点数二位乘法为何要将乘数增加为二位?为何要将乘数增加为二位?两位乘数有四种可能组合,对应于以下操作:两位乘数有四种可能组合,对应于以下操作:00相当于相当于0X。部分积。部分积Pi右移右移2位;位;01相当于相当于1X。部分积。部分积Pi+X,右移,右移2位;位;10相当于相当于2X。部分积。部分积Pi+2X,右移,右移2位;位;11相当于相当于3X。部分积。部分积

39、Pi+3X,右移右移2位。位。63表:原码两位乘法规则表:原码两位乘法规则 Yi-1YiC操 作000(Pi+0)2-20C001(Pi+X)2-20C010(Pi+X)2-20C011(Pi+2X)2-20C100(Pi+2X)2-20C101(Pi-X)2-21C110(Pi-X)2-21C111(Pi+0)2-21C64阵列乘法器阵列乘法器65 增加全加器的个数,实现并行操作,增加全加器的个数,实现并行操作,提高速度,其设计原理仍然来自于人工提高速度,其设计原理仍然来自于人工的乘法运算。的乘法运算。66第四节第四节 二进制除法运算二进制除法运算 一、定点数原码一位除法一、定点数原码一位除

40、法 x原=xf . xn-1x1x0 y原=yf .yn-1y1y0 x/y原=(xfxf)+(0.xn-1. x1x0)/(0.yn-1. y1y0) 符号位通过异或逻辑单独实现符号位通过异或逻辑单独实现 数值位:两数的数值部分相除数值位:两数的数值部分相除 n n位原码除法是指被除数、除数和商均为位原码除法是指被除数、除数和商均为n n位,实位,实际运算中被除数扩展为际运算中被除数扩展为2 2n n位。位。671、恢复余数法、恢复余数法人工计算过程:人工计算过程:P82人工进行二进制除法的规则:人工进行二进制除法的规则: 若被除数小,则上商若被除数小,则上商0 0,并在余数最低位补,并在余

41、数最低位补0 0,再用余数和右移一位的除数比,若够除,则上商再用余数和右移一位的除数比,若够除,则上商1 1,否则上商否则上商0 0。 然后继续重复上述步骤,直到除尽然后继续重复上述步骤,直到除尽( (即余数为零即余数为零) )或已得到的商的位数满足精度要求为止。或已得到的商的位数满足精度要求为止。68 右移除数,右移除数,可以通过可以通过左移被除数左移被除数( (余数余数) )来替来替代代左移出界的被除数左移出界的被除数( (余数余数) )的高位都是无用的高位都是无用的零,对运算不会产生任何影响。的零,对运算不会产生任何影响。 在手算过程中在手算过程中,上商,上商0 0还是还是1 1是计算者

42、用观察是计算者用观察比较的办法确定的比较的办法确定的; ;而在计算机中而在计算机中,只能用做减法,只能用做减法判结果的符号为负还是为正来确定。判结果的符号为负还是为正来确定。69例:例:假设X=0.1011,Y=0.1101,求X/Y。解: -Y补=11.0011,取双符号位,-Y用+-Y补取代。得出:X/Y=0.1101 余数=0.01112-4恢复余数法的缺点是:恢复余数法的缺点是: 当某一次当某一次-Y-Y的差值为负时,要多一次的差值为负时,要多一次+Y+Y恢复余数的恢复余数的操作,降低了执行速度,又使控制线路变得复杂,操作,降低了执行速度,又使控制线路变得复杂,因此在计算机中很少采用。

43、因此在计算机中很少采用。70在恢复余数中,若第在恢复余数中,若第i次求商的余数为次求商的余数为 ,下一次求,下一次求得商的余数为得商的余数为Ri+1,iRY2RRi1i若Ri0,则:712、加减交替法、加减交替法Y2RY)Y2(RRii1i加减交替法的规则如下:加减交替法的规则如下: 当余数为正时,当余数为正时,商上商上1 1,求下一位商的办法,是余,求下一位商的办法,是余数左移一位,再减去除数;数左移一位,再减去除数; 当余数为负时,当余数为负时,商上商上0 0,求下一位商的办法,是余,求下一位商的办法,是余数左移一位,再加上除数;数左移一位,再加上除数; 若最后一次上商为若最后一次上商为0

44、 0,而又需得到正确余数,则在,而又需得到正确余数,则在这最后一次仍需恢复余数。这最后一次仍需恢复余数。 72例:例: 设被乘数设被乘数X=0.1011,Y=0.1101,用加减交,用加减交 替法求替法求 X/Y。P84解:解:-Y补补=11.0011 X/Y=0.1101 余数余数=0.011173例例3.39:设被乘数设被乘数X=0.1011,Y=0.1101,用加减交替法求用加减交替法求X/Y. -Y补补=11.0011,计算过程如下计算过程如下:0 0 1 0 1 1 0 0 0 0 0 开始情形1 1 0 0 1 1 +-Y补1 1 1 1 1 0 0 0 0 0 0 不够减,商上0

45、1 1 1 1 0 0 0 0 0 0 0 左移0 0 1 1 0 1 +Y0 0 1 0 0 1 0 0 0 0 1 够减,商上10 1 0 0 1 0 0 0 0 1 0 左移1 1 0 0 1 1 +-Y补0 0 0 1 0 1 0 0 0 1 1 够减,商上10 0 1 0 1 0 0 0 1 1 0 左移 1 1 0 0 1 1 +-Y补1 1 1 1 0 1 0 0 1 1 0 不够减,商上01 1 1 0 1 0 0 1 1 0 0 左移0 0 1 1 0 1 +Y0 0 0 1 1 1 0 1 1 0 1 够减,商上1+)+)+)+)+)被除数(余数R) (被除数)(商) 操作

46、说明余数 商X/Y=0.1101, 余数=0.011174定点数原码除法几点说明:定点数原码除法几点说明:(1) (1) 对定点小数除法,首先要比较除数和被除数的绝对定点小数除法,首先要比较除数和被除数的绝对值的大小,以检查是否出现商溢出的情况。对值的大小,以检查是否出现商溢出的情况。(2) (2) 商的符号为相除二数的符号的半加和。商的符号为相除二数的符号的半加和。(3) (3) 被除数被除数的位数可以是除数的两倍,其低位的数值的位数可以是除数的两倍,其低位的数值部分开始时放在部分开始时放在商寄存器商寄存器中。运算过程中,放被除数中。运算过程中,放被除数和商的寄存器同时移位,并将商寄存器中的

47、最高位移和商的寄存器同时移位,并将商寄存器中的最高位移到被除数寄存器的最低位中。到被除数寄存器的最低位中。(4) (4) 实现除法的逻辑电路与乘法的逻辑电路极相似,实现除法的逻辑电路与乘法的逻辑电路极相似,但在但在A A寄存器中放被除数寄存器中放被除数/ /余数,余数,B B寄存器中放除数,寄存器中放除数,C C寄存器放商寄存器放商( (如被除数为双倍长,在开始时如被除数为双倍长,在开始时C C中放被除中放被除数的低位数的低位) )。此外,移位电路应有左移。此外,移位电路应有左移1 1位的功能。位的功能。75二、定点数补码一位除法二、定点数补码一位除法 在被除数的绝对值小于除数的绝对值在被除数

48、的绝对值小于除数的绝对值( (即商不溢出即商不溢出) )的情况下,补码一位除法的的情况下,补码一位除法的运算规则如下运算规则如下:(1) (1) 如果被除数与除数同号,用被除数减去除数;如果被除数与除数同号,用被除数减去除数;若两数异号,用被除数加上除数。如果所得余数若两数异号,用被除数加上除数。如果所得余数与除数同号上商与除数同号上商1 1,若余数与除数异号,上商,若余数与除数异号,上商0 0,该商即为该商即为结果的符号位结果的符号位。(2) (2) 求商的数值部分。如果上次上商求商的数值部分。如果上次上商1 1,将余数左移,将余数左移一位后减去除数;如果上次上商一位后减去除数;如果上次上商

49、0 0,将余数左移一,将余数左移一位后加上除数。然后判断本次操作后的余数,如位后加上除数。然后判断本次操作后的余数,如果余数与除数同号上商果余数与除数同号上商1 1;若余数与除数异号上商;若余数与除数异号上商0 0。如此重复执行。如此重复执行n-1n-1次次( (设数值部分有设数值部分有n n位位) )。 76(3) (3) 商的最后一位一般采用恒置商的最后一位一般采用恒置1 1的办法,并省略了的办法,并省略了最低位最低位+1+1的操作,此时最大误差为的操作,此时最大误差为2 2-n-n。 如果对商的精度要求较高,则可按规则如果对商的精度要求较高,则可按规则(2) (2) 再进再进行一次操作,

50、以求得商的第行一次操作,以求得商的第n n位。位。 当除不尽时,若商为负,要在商的最低一位加当除不尽时,若商为负,要在商的最低一位加1 1,使商从反码值转变成补码值;若商为正,最低位不需使商从反码值转变成补码值;若商为正,最低位不需要加要加1 1。 例:P85-8677例例3.40:设设X补补=1.0111,Y补补=0.1101,求求X/Y补补. -Y补补=11.0011,计算过程如下计算过程如下:X/Y补=1.01011 1 0 1 1 1 0 0 0 0 0 开始情形0 0 1 1 0 1 两数异号+Y补 ?书0 0 0 1 0 0 0 0 0 0 1 余数与除数同号,商上10 0 1 0

51、 0 0 0 0 0 1 0 左移1 1 0 0 1 1 上次商1,+-Y补1 1 1 0 1 1 0 0 0 1 0 余数与除数异号,商上01 1 0 1 1 0 0 0 1 0 0 左移0 0 1 1 0 1 上次商0,+-Y补0 0 0 0 1 1 0 0 1 0 1 余数与除数同号,商上10 0 0 1 1 0 0 1 0 1 0 左移 1 1 0 0 1 1 上次商1, +-Y补1 1 1 0 0 1 0 1 0 1 0 余数与除数异号,商上01 1 0 0 1 0 1 0 1 0 1 左移,商的最低位恒置1+)+)+)+)被除数(余数) 商 操作说明余数 商78三、提高除法运算速度

52、的方法三、提高除法运算速度的方法除法运算通过乘法操作来实现除法运算通过乘法操作来实现设X为被乘数,Y为乘数,按下式完成X/Y:式中Fi(0ir)为迭代系数,如果迭代几次后,可以使分母YF0F1Fr1,则分子即为商: XF0F1Fr 因此:因此:问题是如何找到一组迭代系数,使分母很快趋近于问题是如何找到一组迭代系数,使分母很快趋近于1r10r10FFFYFFFXYX 79若若X和和Y为规格化正小数二进制代码,可写成:为规格化正小数二进制代码,可写成: Y=1- (01/2) 如果取如果取 F0=1+,则第一次迭代结果:,则第一次迭代结果:Y0=YF0=(1-)(1+)=1-2取取F1=1+2,则

53、第二次迭代结果:,则第二次迭代结果:Y1=(1-2)(12)=1-4取取Fi=1+2i,则第,则第i+1次迭代结果:次迭代结果: Yi=Yi-1Fi=(1-2i)(1+2i)=1-2i+1当当i增加时,增加时,Y将很快趋近于将很快趋近于1,其误差为,其误差为2i+1求得求得Fi的过程很简单,即:的过程很简单,即: Fi=1+2i=2-1+2i=2-(1-2i)=2-Yi-180例例 设设X=0.1000,Y=0.1011则则=1-Y=0.0101,F0=1+=1.0101 X0 XF0 0.10001.0101 0.1011 Y0 YF0 0.10111.0101 0.1110分子分母分别进行

54、乘法运算。分子分母分别进行乘法运算。 F1=2-Y0=2-0.1110=1.0010 X1 X0F1 0.10111.0010 0.1100 Y1 Y0F1 0.11101.0010 0.1111 分母趋分母趋近于近于1所以所以 X X1 Y Y1X1=0.110081第五节第五节 浮点数的运算方法浮点数的运算方法浮点数的表示形式(以浮点数的表示形式(以2为底):为底): N = M 2E一、浮点加法、减法运算一、浮点加法、减法运算设有两个浮点数设有两个浮点数x x和和y y,分别为:分别为: x=2 x=2Ex Ex M Mx x y=2 y=2Ey Ey M My y82操作过程:操作过程

55、:(1 1)比较阶码大小并完成对阶比较阶码大小并完成对阶 先求出先求出E E= = E Ex xE Ey y,当,当E E 00时,要进行尾数的移动改变时,要进行尾数的移动改变E Ex x或或E Ey y使之相等,为减少误差,采用使之相等,为减少误差,采用小阶向大阶看齐小阶向大阶看齐来实现。来实现。例:例:21001. 021101. 0333321111. 020010. 021101. 020001.083(2) (2) 尾数的加尾数的加/ /减运算减运算执行对阶后,两尾数进行加执行对阶后,两尾数进行加/ /减运算,得到两数之和减运算,得到两数之和/ /差差(3(3)结果规格化处理)结果规

56、格化处理00.100.1 X X X X X X (原码是正数形式)原码是正数形式)11. 1 X X X (原码是负数形式)原码是负数形式)00.1 X X X (补码是正数形式)补码是正数形式)11.011.0 X X X X X (X (补码是负数形式补码是负数形式) )84规格化操作的规则是:规格化操作的规则是: 如果结果的两个符号位的值不同,如果结果的两个符号位的值不同,表示加表示加/ /减运算尾数减运算尾数结果溢出,此时将尾数结果右移结果溢出,此时将尾数结果右移1 1位,阶码位,阶码E+1E+1,称为,称为“向向右规格化右规格化”,简称,简称“右规右规”。 如果结果的两个符号位的值

57、相同,表示加如果结果的两个符号位的值相同,表示加/ /减运算尾数减运算尾数结果不溢出。结果不溢出。但若最高数值位与符号位相同,此时尾数连但若最高数值位与符号位相同,此时尾数连续左移,续左移,直到最高数值位与符号位的值不同为止;同时从直到最高数值位与符号位的值不同为止;同时从E E中减去移位的位数,这称之为中减去移位的位数,这称之为“向左规格化向左规格化”,简称,简称“左规左规”。MM补=00.100.1 X X X X X X11.011.0 X X X X X X00.000.0 X X X X X X11.111.1 X X X X X X1010. .X X X X X X X X010

58、1. .X X X X X X X X无需规格化无需规格化左移左移规格化规格化右移右移规格化规格化85(4(4)舍入)舍入 “ “0 0舍舍1 1入法入法” :移掉的最高位为:移掉的最高位为1 1时,在尾数末位加时,在尾数末位加“1”“1”;移掉的最高位为;移掉的最高位为0 0时,则直接移去。时,则直接移去。 “置置1 1法法” :尾数末位恒置:尾数末位恒置“1”“1”21001.021001.033332101101.02001001.021001.0321011.0321011.0例:例:0舍舍1入法:入法:置置1 1法:法:86(5(5)判断结果的正确性)判断结果的正确性( (即结果的阶

59、码是否溢出即结果的阶码是否溢出) ) 浮点运算的溢出与浮点运算的溢出与尾数尾数无关,由它的阶码决定。无关,由它的阶码决定。 当运算结果的阶码大于它所能表示的最大正数或小当运算结果的阶码大于它所能表示的最大正数或小于它所能表示的最小负数时,表示产生了溢出。于它所能表示的最小负数时,表示产生了溢出。 阶码阶码上上溢:超过了阶码所能表示的最大值,认为溢:超过了阶码所能表示的最大值,认为+ 阶码阶码下下溢:超过了阶码所能表示的最小值,认为溢:超过了阶码所能表示的最小值,认为 尾数尾数上上溢:同符号尾数相加向最高位有进位,进行溢:同符号尾数相加向最高位有进位,进行 “ “右规右规” 尾数尾数下下溢:在尾

60、数右移时,最低有效位从右端流出,溢:在尾数右移时,最低有效位从右端流出, 要进行舍入处理要进行舍入处理8788例:例: 两浮点数相加,求两浮点数相加,求X+YX+Y。已知:已知:X=2X=20100100.11011011, Y=20.11011011, Y=2100100(-0.10101100) (-0.10101100) 解解 :计算过程:计算过程: 对阶操作对阶操作阶差阶差E=E=E EX X补补+ +-E-EY Y补补=00010+11100=11110=00010+11100=11110X X阶码小,阶码小,M MX X右移右移2 2位,保留阶码位,保留阶码E=00100E=001

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论