第三讲 定点运算(加减法)_第1页
第三讲 定点运算(加减法)_第2页
第三讲 定点运算(加减法)_第3页
第三讲 定点运算(加减法)_第4页
第三讲 定点运算(加减法)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第三讲定点运算(一)本讲主要内容移位运算补码加法补码减法益处概念与检测方法基本的二进制加法/减法器一、移位运算1.移位的意义15m=1500cm小数点右移2位机器用语15相对于小数点左移2位(小数点不动)..左移绝对值扩大右移绝对值缩小在计算机中,移位与加减配合,能够实现乘除运算2.算术移位规则1右移添1左移添00反码补码原码负数0原码、补码、反码正数添补代码码制符号位不变例16设机器数字长为8位(含1位符号位),写出A=+26时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。解:A=+26则[A]原

=[A]补

=[A]反

=0,0011010

+

60,0000110

+130,0001101+1040,1101000

+

520,0110100

+260,0011010移位前[A]原=[A]补=[A]反对应的真值机器数移位操作=+11010左移一位左移两位右移一位右移两位例17设机器数字长为8位(含1位符号位),写出A=–26时,三种机器数左、右移一位和两位后的表示形式及对应的真值,并分析结果的正确性。解:A=–26

–61,0000110

–131,0001101–1041,1101000

–521,0110100

–261,0011010移位前对应的真值机器数移位操作原码=–11010左移一位左移两位右移一位右移两位

–61,1111001

–131,1110010

–1041,0010111

–521,1001011–261,1100101移位前对应的真值机器数移位操作

–71,1111001

–131,1110011

–1041,0011000

–521,1001100–261,1100110移位前对应的真值机器数移位操作补码反码左移一位左移两位右移一位右移两位左移一位左移两位右移一位右移两位3.算术移位的硬件实现(a)真值为正(b)负数的原码(c)负数的补码(d)负数的反码00010丢

1丢

1出错影响精度出错影响精度正确影响精度正确正确4.算术移位和逻辑移位的区别算术移位有符号数的移位逻辑移位无符号数的移位逻辑左移逻辑右移低位添0,高位移丢高位添0,低位移丢例如

01010011逻辑左移10100110逻辑右移01011001算术左移算术右移0010011011011001(补码)高位1移丢010100110Cy010100110010110010加法规则:先判符号位,若相同,绝对值相加,结果符号不变;若不同,则作减法,|大|-|小|,结果符号与|大|相同。减法规则:两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。二、补码加/减法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,又因(x+y)<0,故[x]补+[y]补=2+(x+y)=[x+y]补

所以上式成立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]补

举例解:[A]补[B]补[A]补

+[B]补+=0.1011=1.1011=10.0110=[A+B]补验证例18设A=0.1011,B=–

0.0101求[A+B]补0.1011–0.01010.0110∴A+B

=0.0110[A]补[B]补[A]补

+[B]补+=1,0111=1,1011=11,0010=[A+B]补验证–1001–1110–0101+例19设A=–9,B=–5求[A+B]补解:∴A+B

=–1110例20设机器数字长为8位(含1位符号位)且A=15,B=24,用补码求A

–B解:A=15=0001111B=24=0011000[A]补

+[–

B]补+[A]补=0,0001111[–

B]补=1,1101000=1,1110111=[A

B]补[B]补

=0,0011000练习1设x=y=,用补码求x+y9161116x+y=–0.1100=1216–练习2设机器数字长为8位(含1位符号位)且A=–97,B=+41,用补码求A

BA

–B=+1110110=+118∴A

–B=–1001=–9错错4、溢出概念与检测方法引入:可能产生溢出的情况:

两正数加,变负数,正溢(大于机器所能表示的最大数)

两负数加,变正数,负溢(小于机器所能表示的最小数)

溢出判断方法(1)一位符号位判溢出参加操作的两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出单符号位法的硬件实现Cf

C0

00正确(正数)

01上溢

10下溢

11正确(负数)V=Cf⊕C0

其中Cf为符号位产生的进位,C0为最高有效位产生V=1有溢出V=0无溢出(2)两位符号位判溢出[x]补'

=

x1>x≥0

4+x0>x≥–1(mod4)[x]补'+[y]补'=[x+y]补'

(mod4)[x

–y]补'=[x]补'+[–

y]补'

(mod4)结果的双符号位相同

未溢出结果的双符号位不同

溢出最高符号位代表其真正的符号00.×××××11.×××××10.×××××01.×××××00,×××××11,×××××10,×××××01,×××××举例例

x=+01100,y=+01000求x+y

x=-1100,y=-1000求x+y

从上面例中看到:当最高有效位有进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢。

(简单地说是正数相加为负数或负数相加为正数则产生溢出)故溢出逻辑表达式为:V=Cf⊕Co

其中Cf为符号位产生的进位,Co为最高有效位产生的进位。此逻辑表达式也可用异或门实现。(3)利用进位值的判别法

[x]补

00.1100+[y]补

00.1000

01.1000

[x]补

11.0100+[y]补

11.1000

10.1100FAVz0y0x0判断电路

(1)单符号位法判断电路FAFAz1z0Vc1c0y1x1y0x

温馨提示

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

评论

0/150

提交评论