第三章 计算机的算术运算_第1页
第三章 计算机的算术运算_第2页
第三章 计算机的算术运算_第3页
第三章 计算机的算术运算_第4页
第三章 计算机的算术运算_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

第三章计算机的算术运算提纲3.1引言3.2加法和减法3.3乘法3.4除法3.5浮点运算3.6并行性和计算机算术:结合律3.7实例:X86的浮点3.8谬误与陷阱3.9本章小结3.10拓展阅读3.1引言如何表示小数?遇到无法表示的大数怎么办?如何运算?3.2加法和减法运算方法?减法转换为补码的加法;溢出的概念:运算结果超出了数的表示范围MIPS检测到溢出时会产生异常,也叫中断异常程序计数器EPC:保存导致异常的指令一位全加器加法运算:Ai+Bi+Ci

=Si

(Ci+1)

加数 进位输入和进位输出一位全加器真值表输入输出AiBiCiSiCi+10000000110010100110110010101011100111111逻辑方程Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi

全加器逻辑电路Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi

Ci+1=AiBi

·(Ci

·(Ai⊕Bi))

逻辑电路(一位全加器)FAAiBiCiSiCi+1n位的行波进位加减器[x]补

0.1001+[y]补

0.0011

0.1100FAAiBiCiSiCi+13.2.1多媒体算术运算向量计算,或单指令多数据计算饱和操作:当计算结果溢出时,结果被设置成最大的正数或最小的负数例:旋转收音机的音量3.3乘法MIPS乘法提供一对单独的32位寄存器来容纳64位的积;乘法只是简单的移位和加法;可以采用并行的方法提高乘法的速度同号相乘为正,异号相乘为负。设x=0.1101,y=0.1011

0.1101(x)x 0.1011(y)--------------------------------- 1101 1101 0000+1101-----------------------------------0.10001111(z)乘数为1,抄被乘数到对应位置乘数为0,填全0到对应位置或跳过习惯方法运算过程k=4权为2^4i,j=4,03,12,21,30,4am-1am-2.........a0=Ax)bn-1......b1b0=Bam-1b0am-2b0......a1b0a0b0am-1b1am-2b1......a1b1a0b1..................+)am-1bn-1am-2bn-1...a1bn-1a0bn-1pm+n-1pm+n-2pm+n-3......pn-1......p1p0=p并行乘法器实现n位×n位,需要n(n-1)个全加器和n2个“与”门3.4除法例:设被除数x=0.1001,除数y=0.1011

0.1101

商q

0.1011

0.10010

x(r0)被除数小于除数,商0

-0.01011

2-1y除数右移1位,减除数,商1

0.001110

r1得余数r1

-0.0

01011

2-2y除数右移1位,减除数,商1

0.0000110

r2

得余数r2

-0.0

001011

2-3y除数右移1位,不减除数,商0

0.00001100

r3

得余数r3

-0.0

0001011

2-4y除数右移1位,减除数,商1

-0.00000001

r4得余数r4得x÷y的商q=0.1101,余数为r=0.00000001。除数右移等价于被除数左移机器运算与手算的不同在计算机中,小数点是固定的;机器不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,再继续往下运算——恢复余数法。恢复原来的余数,只要当前的余数加上除数即可。恢复余数,使除法进行过程的步数不固定,控制复杂。实际中常用不恢复余数法,又称加减交替法。步数固定,控制简单。不恢复余数(加减交替法)试商 x-y

减恢复余数

x-y+y试下一位商 2x-y=2(x-y)+y 加3.5浮点运算小数点在计算机中如何表示?3.5.1浮点数的表示方法把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示;任意一个十进制数N可以写成:N=10E.M计算机中一个任意进制数N可以写成:N=Re.mm:尾数,是一个纯小数;e:比例因子的指数,称为浮点的指数,是一个整数;R:比例因子的基数。(1)机器浮点数机器浮点数由阶码、尾数及其符号位组成:尾数:用定点小数表示,给出有效数字的位数,决定浮点数的表示精度;阶码:用整数形式表示,指明小数点在数据中的位置,决定浮点数的表示范围。EsE1E2....EmMsM1M2....Mn阶符阶码数符尾数(2)浮点数的标准格式IEEE(国际电气和电子工程师协会)IEEE754标准:尾数用原码;阶码用移码,基为2;S---尾数符号,0正1负;M---尾数,纯小数表示,小数点在尾数域最前;E---阶码,采用移码方法来表示正负指数。313023220SEM(3)浮点数的规格化表示浮点数表示:0.5;0.05101

;0.005102;为提高数据的表示精度,需做规格化处理;规格化处理:对非0值的浮点数,要求尾数的绝对值必须>=1/2,即尾数域的最高有效位应为1:0.10001;规格化处理,通过尾数移位和修改阶码实现。隐藏位技术非0值浮点数的尾数数值最高位必定为1;保存时把该位去掉,用同样多的尾数位就能多存一位二进制数;0.11000101.100010取回运算时,必须先恢复隐藏位。(4)规格化浮点数的真值移码定义:[x]移

=x0x1x2···xn

=2n+x -2n

x

2nIEEE754标准,一个规格化的32位浮点数x的真值为:x=

(-1)s

(1.M)

2E-127 e=E–127IEEE754标准,一个规格化的64位浮点数x的真值为:x=(–1)s×(1.M)×2E-1023 e=E–1023E=0且M=0,浮点数x的真值为零,称为机器零S=0,+0 S=1,-0E=11...1,M=0,浮点数x的真值为

S=0,+

S=1,-

例1若浮点数x的二进制存储格式为(41360000)16,求32位浮点数的十进制值。0100,0001,0011,0110,0000,0000,0000,0000数符:0阶码:1000,0010尾数:011,0110,0000,0000,0000,0000指数e=阶码-127=10000010-01111111=00000011=(3)10包括隐藏位1的尾数:1.M=1.011011000000000

0000

0000=1.011011于是有x=(-1)s×1.M×2e=+(1.011011)×23=+1011.011=(11.375)10例2将十进制数20.59375转换成32位浮点数的二进制格式来存储首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011然后移动小数点,使其在第1,2位之间10100.10011=1.010010011×24 e=4于是得到:S=0,E=4+127=131=1000,0011,M=010010011最后得到32位浮点数的二进制存储格式为01000001

10100100110000000000

0000=(41A4C000)16移码表示法n位整数,假定移码形式为x0x1x2···

xn2n+x-2n

x

2n[x]移

=移码通常用于表示浮点数的阶码;8位移码表示的机器数为数的真值在数轴上向右平移了128个位置。0-128+127负数正数机器数移码的特点与原码、补码、反码的符号位值正好相反;移码的大小直观地反映了真值的大小,有助于两个浮点数进行阶码大小比较;真值0在移码中的表示形式是唯一的,即:[+0]移=[­0]移=100…00同一数值的移码和补码除最高位相反外,其他各位相同。3.5.2浮点加法设有两个浮点数x和y,它们分别为:x=2Ex·

Mxy=2Ey·MyEx和Ey

分别为阶码,Mx

和My为尾数。两浮点数进行加法和减法的运算规则是:x±y=(Mx2Ex-Ey±My)2Ey Ex<=Ey完成浮点加减运算的操作过程大体分为:(1)比较阶码大小并完成对阶;(2)尾数进行加或减运算;(3)结果规格化(4)溢出处理(5)舍入处理。对阶使二数阶码相同(小数点位置对齐),叫对阶。先求两数阶码Ex和Ey之差,即△E=Ex-Ey若△E=0,表示

Ex=Ey若△E>0,Ex>Ey若△E<0,Ex<Ey通过尾数的移动来改变Ex或Ey,使其相等.对阶原则阶码小的数向阶码大的数对齐;小阶的尾数右移,每右移一位,其阶码加1。结果规格化尾数求和方法与定点加减法运算完全一样;将求和的结果规格化.

规格化的定义:

采用原码:正数:S=0.1×××…×负数:S=1.1×××…×采用双符号位的补码:对正数:S=00.1×××…×对负数:S=11.0×××…×舍入处理在对阶或向右规格化时,尾数要向右移位,被右移的尾数的低位部分会被丢掉,造成一定误差,要进行舍入处理。简单的舍入方法有两种:“0舍1入”法:右移时被丢掉数位的最高位为0则舍去,反之则将尾数的末位加“1”。“恒置1”法:只要数位被移掉,就在尾数的末位恒置“1”。从概率上来说,丢掉的0和1各为1/2。溢出处理浮点数的溢出表现为阶码溢出;阶码上溢超过了阶码可能表示的最大值的正指数值,一般将其认为是+∞和-∞。阶码下溢超过了阶码可能表示的最小值的负指数值,一般将其认为是0。对尾数的溢出也需要处理尾数上溢

两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增1来重新对齐。尾数下溢在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理3.5.3浮点乘/除法设有两个浮点数x和y:x=2Ex·Mx,y=2Ey·My浮点乘法运算的规则是:x

y=2(Ex+Ey)·(Mx

My)浮点除法运算的规则是:

x÷y=2(Ex-Ey)·(Mx÷My)浮点乘、除法运算步骤:(1)0操作数检查;(2)阶码加/减操作;(3)尾数乘/除操作;(4)结果规格化及舍入处理浮点运算流水线流水线原理把输入的任务分割为一系列子任务,使各子任务能在流水线的各个阶段并发地执行;将任务连续不断地输入流水线,从而实现了子任务的并行。在流水线中,原则上要求各个阶段的处理时间都相同。对子任务的划分,是决定流水线性能的一个关键因素。假定作业T被分成k个子任务,可表达

温馨提示

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

评论

0/150

提交评论