第3章运算方法和运算部件3.docx

上传人:scccc 文档编号:13917667 上传时间:2022-01-26 格式:DOCX 页数:34 大小:152.68KB
返回 下载 相关 举报
第3章运算方法和运算部件3.docx_第1页
第1页 / 共34页
第3章运算方法和运算部件3.docx_第2页
第2页 / 共34页
第3章运算方法和运算部件3.docx_第3页
第3页 / 共34页
第3章运算方法和运算部件3.docx_第4页
第4页 / 共34页
第3章运算方法和运算部件3.docx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《第3章运算方法和运算部件3.docx》由会员分享,可在线阅读,更多相关《第3章运算方法和运算部件3.docx(34页珍藏版)》请在三一文库上搜索。

1、3.2.3定点数和浮点数计算机中的两种表示方式 数值范围:一种数据类型所能表示的最大值和 最小值 数据精度:实数所能表示的有效数字位数。数值范围和数据精度均与使用多少位二进制位数以及编码方式有关。 计算机用数字表示正负,隐含规定小数点。采用“定点”、“浮点”两种表示形式。1 .数的定点表示方法(1) .定点整数小数点位置固定在数的最低位之后如:Dn-1 Dn-2Dl Do .范围:2n-l-2n-l (采用字长n=16位补码时其 值为32767 -32768)(2) .定点小数小数点位置固定在数的符号位之后、数值最高位之前。如:Do |D-1 D-(n-2) D-(n-l)范围:1 - 2-(

2、n-D-1 (采用字长n=16位口寸其值为 32767/32768 -1)其中n表示字长多少位2.数的浮点表示方法(1) 浮点数的表示:是把字长分成阶码利 尾数两部分。其根据就JEm-2EOSD-iD- (n-i)阶符 阶码值 数符.尾数值EEm-2 EOD-lD-(n-l)数符阶符阶码值 .尾数值通常,阶码为补码或移码定点整数,尾数为补码或原码 定点小数。移码(增码)表示法0移=基准值+ X如:基准值=21即补码符号位取反得移码2小1 _ x -21Xi补=0101 0101Xi移=1101 0101X2补=1010 1011X2移=0010 1011(2)浮点数的规格化目的:字长固定的情况

3、下提高表示精 度的措施:1增加尾数位数(但数值范围减小)2采用浮点规格化形式规格化方法:调整阶码使尾数满足下列关系:尾数为原码表示时,无论正负应满足l/2vld Ivl即:小数点后的第一位数一定要为1。正数的尾数应为0. lx. .x负数的尾数应为Llx.x尾数用补码表示时,小数最高位应与数符符号位 相反。正数应满足l/2Wdvl,即0x.x负数应满足-l/2dN-l,即L0x.x例题:设某机器用32位表示一个实数,阶码部分8位 (含1位阶符),用定点整数补码表示;尾数部分24位(含数符1位),用规格化定点小数补码表示,基 数为2。则:1 .求X=256.5的第一种浮点表示格式X=(256.

4、5)io =+( 100000000.1 )2 =4-(0.1000000001 x 2+9 )28位阶码为:(+9)补=0000 100124位尾数为:(+0.100000 0001)#=0.100 0000 0010 0000 0000 0000所求256.5的浮点表示格式为:oooo looibioo oooo 0010 0000 0000 0000用16进制表示此结果则为:(09402000)162 .求丫= -256.5的第一种浮点表示格式Y=-(256. 5)io =-(100000000.1)2=-0.1000000001 x2+98位阶码为:(+9)补=0000 100124位

5、尾数为:(-0.100000 0001)补=1.011 1111 1110 0000 00000000所求-256.5的浮点表示格式为:0000 1001 011 1111 1110 oooo 0000 0000用16进制表示此结果则为:(09BFE000)69 (3)溢出问题 定点数的溢出根据数值本身判断 浮点数的溢出根据规格化后的阶码判断 上溢浮点数阶码大于机器最大阶码卜溢浮点数阶码小于机器最小阶码 零处理溢出的具体判断方法将结介实例在后续课程中介绍3.微机中所能表示的数值类型 (1)无符号二进制数(字节、字和双字) (2)带符号的二进制定点整数形式(16、 32、64位补码表示)和18位

6、BCD码整数形 式(80bit)。 (3)浮点数(IEEE754标准)包括数符 S、阶码E和尾数D三个字段。微机中的四种整数类型整数类型16位整数 短整数 长整数数值范围| :3276832767 -231 231-1 - 一涓21二进制16位二进制32位一二进制16+而格 式 木码表示 补码表示 补码表示BCD整数-10,8+1-10,8-1 十进制18位 80个二进制其中最左面1字节的最高位是符号位,余7位无 效;另外72位是18位BCD码,原码表示。IEEE754标准格式如下 (-l)s 2E (D0.D 1D_(p/) 最高是数符S占1位,。表示正、1表示负; 指数项E,基数是2, E

7、是一个带有一定偏 移量的无符号整数;尾数部分D,它是一 个带有一位整数位的二进制小数真值形 式。其规格化形式应调整阶码使其尾数 整数位D。为1且与小数点一起隐含掉。微机中三种不同类型浮点数的格式单精度双精度扩展精度|浮点数长度(位)326480符号位数111|尾数长度p(位)23+1 (隐)52+1 (隐)64阶码E长度(位)81115|最大阶码+ 127+ 1023+16383最小阶码-126-1022-16382阶码偏移量+ 127+ 1023+16383|表示数范围io38-io+3810叽o+3O8微机中浮点数表示成规格化形式,如下图所示:单精度31 30符号位阶23.22码尾数有效位

8、双精度6362符号位阶52 510码尾数有效位扩展精度79 78符号位I阶64 63尾数有效位微机中浮点数的三种表小形式例如将十进制数178.125表示成微机 中的单精度浮点数 W:178.125=10U0010.001B=1.0110010001x27指数 E=7+127=134= 1000011 OB127是单精度浮点数应加的指数偏移量,其完整的 浮点数形式为:0 10000110 011 0010 0010 0000 0000 0000= 43322000H例:将下面Pentium机中的单精度浮点数 表示成十进制真值是多少?0011 ,1111,0101,1000,0000,0000,0

9、000,0000数符:S=(-l)*l (正号)阶码:E=(01111110)2-127=126-127= -1尾数:D=(l.1011)2X= 1.1011x2-1= (0.11011)2=0.843753.2.4数字化信息的编码及表示计算机进行数据处理和运算,就必须首先实 现数字化表达。另外由于计算机除了数据处理和运算外,还 要进行各种文字(特别是中文)的处理与编辑。因 此,所有由计算机处理的信息也要用数字进行编 码。这样在物理机制上可以以数字信号表示.信息的数字化表示形式数字信号:是一种在时间上或空间上离散 的信号,单个信号是常用的二值逻辑(。或 1),依靠多位信号组合表示广泛的信息.1

10、81.用一串脉冲信号表示数字代 码(先发低位后发高位为例)2 .用一组电平信号表示数字代 3.用一组数字代码表示字符(如ASCII码) 4 .用若干点的组合表示图像(如图形点阵码) 5 .用数字信号表示声音(如VCD DVD光盘;) 6 ,用数字代码表示命令与状态21数字化方法表示信息的优点: 抗干扰能力强,可靠性高; 位数增多则数的表示范围可扩大; 物理上容易实现,并可存储; 表示信息的范围与类型极其广泛; 能用逻辑代数等数字逻辑技术进行处理.222 .3二进制乘法运算L软件编程方法实现(时序控制乘法器)由手算到机器实现,要解决三个问题:符号问题、 部分积相加进位问题、移位问题。原码乘法是先

11、取绝对值相乘,再根据同号相乘为正 异号相乘位负,单独决定符号位。补码乘法则让符号 位直接参加运算,算法将会复杂一些。3 .硬件快速乘法器实现利用中大规模集成电路芯片,在一拍节中实现多项 部分积的相加,成为阵列乘法器。233.1.1 定点数一位乘法1.定点原码一位乘规则:在机器中采用A,B,C寄存器来分别存放部分积,被乘 数和乘数(1)在机器内一次加法操作只能求出两数之和,因此 每求得一个相加数时,就得与上次部分积相加。(2)人工计算时,相加数逐次向左偏移一位,由于最 后的乘积位数是乘数(或被乘数)的两倍.由于在求本 次部分积时,前一次部分积的最低位,不再参与运算, 因此可将其右移一位。相加数可

12、直送而不必偏移,于是 用N位加法器就可实现两个N位数相乘。(3)部分积右移时乘数寄存器同时右移一位,这样可 以用乘数寄存器的最低位来控制相加数(取被乘数或 零),同时乘数寄存器的最高位可接收部分积右移出来 的一位,因此,完成乘法运算后,A寄存器中保存乘积 的高位部分,乘数寄存器C中保存乘积的低位部分。24算法表示如下:Po=OPi=(Po+XyQ 2-1P2=(Pi+XyQ 2nPn= (Pmi+XyP 2-1=ZX21=125:X=0.1101,Y=0.1011,X*Y.其中寄存器B=X ,Cd=4.流程图3.6计算过程如下:部分枳A乘数C00 00001041 1十X00 110 100

13、110 1后移一,位T00 0 110110 11(丢失)+X00 110 10 1 00 1 1右移位T00 1 00 111101(丢失)+000 000000 1 00 1右移一位10 0 ()10()11110(丢失)+X00 110 10 1 000 100 1 00011111(丢失)乘积高位乘积低位26X*Y=O. 10001111 注意: 两操作数的绝对值相乘,符号位单独 处理。 寄存器A.B均设置双符号位,第1符号 位始终是部分积符号,决定在右移时 第1符号位补0 操作步数由乘数的尾数位数决定,用 计数器Cd来计数。即作n次累加和移 位。 最后是加符号位,根据SxSy决定67

14、2.定点补码一位乘法1 ) X补与X真值的关系设X#=X0X 1X2 Xn,则有X补=2Xo+XX= X补-2X。=X0X1X2.Xn|2X0=-Xo+O.X1X2.Xn2 ) X/2补的计算X/2=-Xo/2+O.OX1X2.Xn=-Xo+O.XoX1X2.Xn故X/2补=X. XoXXX,即将凶补的符号位与 数值位一起右移并保持符号位不变293 )定点补码一位乘法算法一:.设YM=YYY2.Yn 贝 IJY=-Y0+ 三匕 2-X*Y=X补*Y= X补(-Y0 + , 士匕2T )/-I=X 卜匕 2T X#Y0 31当Y为正值时,X补Y。为0,与原码的乘法规则相同当Y为负值时,X补Y。为

15、X补,在原码乘法的基础上减 去凶补4)定点补码一位乘法算法二:X*Y#= X补* (-Yo+Y *2-1+丫/2-2+. + Yn*2-n)= X补*-Y()+(Y-Y产2/)+(丫2*2/+丫2*2-2) + +( Y产2-向-丫产25) =X补*(YYo)+(Y2-YI)*2+( Yn-Ynj)*234(0 -YQ*2叫= X补* 士(匕+匕)*2-29=(1这种算法称为Booth算法,也称为比较法。这种 方法在机器实现中要在乘数末位Yi之后再增加一 个附加位Yi+i,并令其初始值为0。然后根据比较 Yi、Yi+i的值决定下一步操作,规则如下:(部分 积初始为0)Yi Yi+i 操 作00

16、原部分积右移一位01原部分积加X补后再右移一位10原部分积加X补后再右移一位11原部分积右移一位30例 3.35:设 X=0.n(H,Y=0.1011,即X补=1LOOU,Y补=0.1011 ,X=00J101 求工丫补部分积:乘数YYi Yi+1说明计算过程如下:r00 00000. 1 01 1 0初始值,最后一位补0+00 1101Y5Y4=0I+-X00 110100 0 11010 10 1 1右移一位+()0 0 0 0 0Y4Y3=1I+000 0110100 0011010 10 1右移一位+1 1 00 1 1Y3Y2=1OMX林1 1 ()11()1 1 10 1100 1

17、0 1 0右移一位+0() 110 1Y2YI=()1+-X0 0 1 0 0 000 010000 0T|0 1右移一位+1 1 ()0 1 1YIY()=I()+IX林1 1 0 11100 01乘积高位乘积低位31fXY补=1.01110001, XY=-0.10001lll初始值与符号位:A寄存器存放部分累加和,初始为0,采用双符号位。第1符号位指示累 加和的正负,以控制右移时补0或补鼠B中 存放被乘数的补码,双符号位。 基本操作:用C寄存器最末两位作判断位, 决定下一步的操作。 移位:在右移时,第2符号位值移入位数的最 高位,第1符号位值不变且移入第2符号位, 而A寄存器末位移入C寄

18、存器。 步数与最后一步操作:乘数有效位是4位,共作5步。注意,最后一步不移位因为这一步 是用来处理符号位的。333.4.1定点除法运算1 .定点原码一位除法有恢复余数法和不恢复余数法(加减交替法),计算机中常用 后者。因为它的操作步骤少,而且也不复杂。其处理思想是:先 减后判,如减后发现不够减,则在下一步改作加除数操作。这样 操作步骤固定易于编程。其要点如下:(1)要求被除数IXIv除数IYI,并取原码尾数的绝对值相除;符号 位单独处理,商的符号为相除两数符号的半加和。(2)被除数的位数可以是除数的两倍,其低位的数值部分开始 时放在商寄存器中。运算中,放被除数和商的A、C寄存器同时 移位,并将

19、商寄存器C中最高位移到被除数寄存器A的最低位中。(3)每步操作后,可根据余数Ri符号来判断是否够减:Ri位正 表明够减,上商Q为1。Ri为负表明不够减,上商Q为。(4)基本操作可用通式描述为:Ri=2Ri+(l-2Qi)Y(5原码除的思想是先当成正数相除,若最后一步所得余数为负, 则应恢复余数,但不移位,以保持Ri为正。33举例如下:例3.39:设被乘数乂=0.1011,丫=0.1101,用加减交替法求、/.丫补=11.0011,计算过程如下:被除数(余数R)(被除数)(商) 操作说明0010 1100000开始情形+).1 I00 11H-Yh 卜11111000000不够减.商上01 11

20、 1 00000()0左移+) _00110 1+Y001 00 100001够减.商上10 100 1000010左移+)1 100 11M-Y林()0()10100011够减,商上10010 1000110左移+)1 I()0 1 1+丫忤1 1110 100110不够减.商上01 110 10011 1)0左移+) .0 0110 1+Y000 111011 101够减,商上1余数商34X/Y=O. 1101,余数=0.0111 A寄存器中开始时存放被除数的绝对值,以后将存 放各次余数,取双符号位。B寄存器存放除数的绝 对值,取双符号位。C寄存器同来存放商,取单符 号位。 第一步操作:将

21、被除数X视为初始余数R。,根据R。符 号位正(绝对值),令商符为0,正是的商符以后 再置入。第一步为 商值则根据余数R。的符号来决定,正则商上1,求 下一位商的办法是余数左移一位再减去除数;当余 数为负则商上0,求下一位商的办法是余数左移一 位再加上除数。左移位时末位补0。 操作步数与最后一步操作:如果要求得n位商(不 含符号位),则需作n步“左移加减”循环;若第n 步余数为负,则需增加一步恢复余数,这增加的一 步不移位。352.定点补码一位除法(加减交替法)补码除法规则表:x补、Y补、I补分别为被除数、除数和余 数X补Y补 数符商符第一步 操作I补Y补数符上商下一步操作同号0减法同号(够减)

22、 异号(不够减)102ri补-Y 补2ri补+Y 补异号11加法同号(不够减) 异号(够减)102ri补一Y 补2ri补+Y 补36操作说明开始情形两数异号MY林?书余数与除数同号.商上1左移上次商补余数与除数异号,商上0左移上次商0,+Y林余数与除数同号.商上1左移上次商1, +Y林余数与除数异号.商上0左移,商的最低位恒置1以上是在IXIvlYI即不溢出的前提下;(1)第一步如果被除数与除数同号,用被除数减去除数; 若两数异号,用被除数加上除数。如果所得余数与除数 同号上商1,若余数与除数异号,上商0,该商即为结果 的符号位。(2)求商的数值部分如果上次上商1,将余数左移一位 后减去除数;

23、如果上次上商0,将余数左移一位后加上 除数。然后判断本次操作后的余数,如果余数与除数同 号上商1;若余数与除数异号上商0。如此重复执行次(设数值部分有n位)。(3)商的最后一位一般采用恒置1的办法,井省略了最低位+1的操作,此时最大误差为士2。如果对商的精度要求较高则可按规则(2)再进行一次操作以求得商的第n 位。当除不尽时若商为负,要在商的最低一位加1,使商从反码值转变成补码值;若商为正最低位不需要加1。37例3.40:设X补=L01”帝占0.1101,求X/Y补.Y补=11.00,计算过程如下:被除数(余数)1 1 0)11+)00 110 100 0 1 00()0 10 00+)110

24、0 111 110 111 10 110+)()0110 100 00 1100 0110+)1100 1)1 1100 1I 10 0 10余数X/Y补=1.010139例340最低位恒置1,余数不正确。 A寄存器存放被除数(补码),以后存放余数, 取双符号位。B寄存器存放除数(补码),双 符号位。C寄存器存放商,初始值为0 (未考 虑商符之前),单符号位。如余数为0,则表示除尽。例341如采用商的 最低位恒置1的方法,其误差为2-n=24补码除法规则表补充说明:1、表中i=0nL 2、上采用末位恒置1的方法,操作简便。如 要提高精度,则按上述规则多求一位,再采 用以下方法对商进行处理:两数

25、能除尽时,如除 数为正,商不必加2?如除数为负,商加2七 两数除 不尽时,如商为正,商不必加2?如商为负,商加 例3.42 X补=L0111,Y补=L0011,则Y补=0.1101。求乂/补=?被除数(余数) Ho 0111 + 00o 1101操作说明00o 0100 左移 00。1000 + 11。 0011Ho 1011 左移 11。01 10 + 00、 1101 00o 0011 左移 00o 01 100101()两数同号,+-Y补余数与除数异号,商。+Y补 同号,商1+1-YJ 补异号,商。Ho 0011Ho 10010101+Y补同号,商1左移 11。0010+ 00o 110

26、1Ho 1111X/Y补=0.10110101 1余数补=1。HI1X2-4+-Y补同号,商1403.5浮点数的运算方法浮点数的表示形式(以2为底):N = D -2E其中,D为浮点数的尾数,一般为绝对值小于1的 规格化二进制小数用原码或补码形式表示;E 为浮点数的阶码,一般是用移码或补码表示的 整数。阶码的底除了2以外,还有用8或16表示 的,这里先以2为底进行讨论。然后再简介以8 或16为底的数的运算。1 .加、减法运算两数首先均为规格化数,在进行规格化浮点数 的加减运算需经过五步完成: 对阶操作:低阶向高阶补齐,使阶码相等; 尾数运算:阶码对齐后直接对尾数运算; 结果规格化:对运算结果进

27、行规格化处理;(使补码尾数的最高位和尾数符号相反)如溢出则需右规;如不是规格化时应左规。 舍入操作:丢失位进行。舍1入或恒置1处理; 判断溢出:判断阶码是否溢出,下溢则将运 算结果置0,上溢则中断。具体说明如下:对阶运算(小阶向大阶对齐)尾数为原码时,尾数右移,符号位不动,最高位补0尾数为补码时,尾数右移,符号也移位,最高位补符号44规格化:原码尾数值高位为1,补码尾数值高位与符号相反舍入操作:0舍1入或恒置1例1:求0.1001 x 4- 1OO1 x2O. 1(X)1 x 23 4- O.(X)1(X)1 x 23 = 0.101 1O1 x 230舍1入后为O. 1O11 X 2恒置1例

28、2:求(),10112 0.1001 X 23 -F 0.1010 X 20.1001 X 2? +0.001010 X 2? = 0.101 l10)x 2,0舍1入后为 恒置1O JOO X 23O.1O11 x 23判断结果的正确性(即结果的阶码是否溢出)阶码001000110011尾数5位110100001001101X+Y2-O. 1OOO1 X 2例:假设其中指数和小数均为二进制真值,求X+Y=?其阶码4位 (含阶符),补码表示;尾数6位,补码表示,尾数符号在最 高位,尾数数值为5位。解: 尾符X浮=0Y浮=1 对阶X浮=0尾数求和 00.01101+11.00010=11.011

29、11X浮+Y浮=1 0011 01111规格化、舍入操作、阶码溢出判断,最后:例:假设X =0.1101 X 2I()9 Y = (). 1111 X 2其中指数和小数均为二进制真值,求x-Y。其阶码4位(含阶符), 补码表示;尾数6位,补码表示,尾数符号在最高位,尾数数值5位解: 尾符阶码尾数X浮=0 001011010Y浮=1 001100010对阶X浮=0 001101101尾数求差:X尾-Y尾补=9尾补+-Y尾补 =00.01101+00.11110=01.01011 规格化处理、舍入操作、阶码溢出检查: 尾数符号位为01,尾数发生上溢出,做规格化处理 尾数连同符号右移一位00.101

30、011,阶码加1至0100 舍入操作恒置1后:X浮-Y浮=0 0100 10101X-Y*=0.10101 x21()0463.5.2浮点数的乘、除法运算 两浮点数相乘其乘积的阶码为相乘两数阶码之和, 其尾数应为相乘两数的尾数之积。 两个浮点数相除,商的阶码为被除数的阶码减去 除数的阶码得到的差,尾数为被除数的尾数除以 除数的尾数所得的商。 参加运算的两个数都为规格化浮点数,乘除运算 都可能出现结果不满足规格化要求的问题,因此 也必须进行规格化、舍入和判溢出等操作。规格 化时要修改阶码。 .浮点数乘法运算(阶码的底为8或16)前面的讨论,是以阶码值的底为2来进行的。为了用相同位数的 阶码表示更

31、大范围的浮点数,在一些计算机中也有选用阶码的底 为8或16的。此时浮点数N被表示成N=8e M 或N=16EM阶码E和尾数M还都是用二进制表示的,其运算规则与阶码以2 为底基本相同,但关于对阶和规格化操作有新的相应规定。当阶 码以8为底时,只要尾数满足1/8M1或 一 1WM一 1/8就是规格化数。执行对阶 和规格化操作时,每当阶码的值增或减1,尾数要相应右移或左 移三位。当阶码以16为底时,只要尾数满足1/16MV1或一 1MV一 1/16就是规格化数。执行对阶和规格化操作时,阶码的值增或 减1,尾数必须移四位。判别为规格化数或实现规格化操作,均应使数值的最高三项 (以8为底)或四位(以16

32、为底)中至少有一位与符号位不同。 5浮点数除法运算步骤与乘法运算类似,也分求商的阶码、尾数相除、规格化飞 舍入和判溢出5个步骤,不再详细讨论。3.6运算部件1 .定点运算部件定点运算部件由算术逻辑运算部件ALU、若 干个寄存器、移位电路、计数器、门电路等组 成。ALU部件主要完成加减法算术运算及逻辑 运算(其功能可参考2 4 2节),其中还应包含 有快速进位电路。2 .浮点运算部件通常由阶码运算部件和尾数运算部件组成。其 各自的结构与定点运算部件相似。但阶码部分 仅执行加减法运算。其尾数部分则执行加减乘 除运算,左规时有时需要左移多位。为加速移 位过程,有的机器设置了可移动多位的电路。493 .7计算机中的数据校验方法采用冗余校验方法:即在基本的有效数据 夕卜,再扩充部分位,增加部分(冗余部分)被 称为校验位。将校验位与数据位一起按某种规 则编码,写入存储器或向外发送。当从存储器读出或接收到外部传入的代码 时,再按相应的规则进行判读。若约定的规则 被破坏,则表示出现错误。根据错误的特征进 行修正恢复。50

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1