运算方法与运算器课件.ppt
《运算方法与运算器课件.ppt》由会员分享,可在线阅读,更多相关《运算方法与运算器课件.ppt(137页珍藏版)》请在三一办公上搜索。
1、第二章 运算方法和运算器,2.1数据与文字的表示2.2定点加法、减法运算2.3定点乘法运算2.4定点除法运算2.5定点运算器的组成2.6浮点运算与浮点运算器,返回,2023/1/22,1,2.1数据与文字的表示方法,2.1.1数据格式2.1.2数的机器码表示2.1.3字符的表示2.1.4汉字的表示2.1.5校验码,2023/1/22,2,2.1数据与文字的表示方法,计算机中使用的数据可分成两大类:符号数据:非数字符号的表示(ASCII、汉字、图形等)数值数据:数字数据的表示方式(定点、浮点)计算机数字和字符的表示方法应有利于数据的存储、加工(处理)、传送;编码:用少量、简单的基本符号,选择合适
2、的规则表示尽量多的信息,同时利于信息处理(速度、方便),2023/1/22,3,2.1.1数据格式,一、复习10进制和R进制之间的转换 R进制到10进制:10进制到R进制:整数部分:除r取余,r为进制基数小数部分:乘r取整,2023/1/22,4,2.1.1数据格式,二、数值数据 计算机在数据、文字的表示方式时,应该考虑一下几个因素:表示的数据类型(符号、小数点、数值)数值的范围数值精度存储、处理、传送的硬件代价,2023/1/22,5,2.1.1数据格式,三、计算机常用的数据表示格式有两种:定点表示:小数点位置固定浮点表示:小数点位置不固定,2023/1/22,6,2.1.1数据格式,四、定
3、点表示法所有数据的小数点位置固定不变理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式):纯小数纯整数定点数表示:带符号数不带符号数,2023/1/22,7,1、定点纯小数,x0 x1 x2 x3 xn-1 xn表示数的范围是 0|12n(最小数、最大数、最接近0的正数、最接近0的负数),符号,量值,小数点固定于符号位之后,不需专门存放位置,2.1.1数据格式,2023/1/22,8,2.1.1数据格式,2、纯小数的表示范围,2023/1/22,9,2.1.1数据格式,3、定点纯整数 x0 x1 x2 x3 xn-1 xn表示数的范围是 0|2n1最小数、最
4、大数、最接近0的正数、最接近0的负数呢,符号,量值,小数点固定于最后一位之后,不需专门存放位置,2023/1/22,10,2.1.1数据格式,4、定点表示法的特点定点数表示数的范围受字长限制,表示数的范围有限;定点表示的精度有限机器中,常用定点纯整数表示;如果用定点表示,则如何表示实数(包括小数和整数)呢?-引入浮点,2023/1/22,11,2.1.1数据格式,五、浮点表示:小数点位置随阶码不同而浮动1、格式:N=RE.M2、机器中表示,指数E,基数R,取固定的值,比如10,2等,尾数M,2023/1/22,12,2.1.1数据格式,3、IEEE754标准(规定了浮点数的表示格式,运算规则等
5、)规则规定了单精度(32)和双精度(64)的基本格式.规则中,尾数用原码,指数用移码(便于对阶和比较),2023/1/22,13,2.1.1数据格式,IEEE754标准基数R=2,基数固定,采用隐含方式来表示它。32位的浮点数:S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。M是尾数,23位,在低位部分,采用纯小数表示E是阶码,8位,采用移码表示。移码比较大小方便。规格化:若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。尾数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上
6、一个固定的偏移值127(01111111),即E=e+127。,2023/1/22,14,2.1.1数据格式,64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数x的真值为:x=(-1)S(1.M)2E-1023 e=E-1023一个规格化的32位浮点数x的真值表示为 x=(-1)S(1.M)2E-127 e=E-127,2023/1/22,15,2.1.1数据格式,真值x为零表示:当阶码E为全0且尾数M也为全0时的值,结合符号位S为0或1,有正零和负零之分。真值x为无穷大表示:当阶码E为全1且尾数M为全0时,结合符号位S为0或1,也有+和-之
7、分。这样在32位浮点数表示中,要除去E用全0和全1(25510)表示零和无穷大的特殊情况,指数的偏移值不选128(10000000),而选127(01111111)。对于规格化浮点数,E的范围变为1到254,真正的指数值e则为-126到+127。因此32位浮点数表示的绝对值的范围是10-381038(以10的幂表示)。浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。,2023/1/22,16,2.1.1数据格式,浮点数表示范围如下图所示,202
8、3/1/22,17,2.1.1数据格式,例1若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。解:将16进制数展开后,可得二制数格式为 0 100 00010011 0110 0000 0000 0000 0000 S 阶码(8位)尾数(23位)指数e=阶码-127=10000010-01111111=00000011=(3)10包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011于是有x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)10,2023/1/22,18,2.
9、1.1数据格式,例2将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解:首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.01001001124 e=4于是得到:S=0,E=4+127=131,M=010010011 最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000=(41A4C000)16,2023/1/22,19,2.1.1数据格式,4、十进制数串的表示字符串形式BCD(压缩)编码方式有权码:(8421码、24
10、21码、5211码)无权码:(余三码、格雷码)自定义数据表示,2023/1/22,20,2.1.2数的机器码表示,一、数的机器码表示真值:一般书写的数机器码:机器中表示的数,要解决在计算机内部数的正、负符号和小数点运算问题。原码反码补码移码,2023/1/22,21,1、原码表示法,定点小数x0.x1x2xn x 1x0 0,正x原=符号 1-x 0 x-1 1,负数有正0和负0之分范围2-n-11-2-n例:x=+0.11001110 x原=0.11001110-x原=1.11001110,2023/1/22,22,1、原码表示法,定点整数X0X1X2Xn x 2nx0 0,正数x原=符号
11、2n-x 0 x-2n 1,负数说明:有正0和负0之分范围 1-2n 2n 1例:x=+11001110 x原=011001110-x原=111001110,2023/1/22,23,1、原码表示法,原码特点:表示简单,易于同真值之间进行转换,实现乘除运算规则简单。进行加减运算十分麻烦。,2023/1/22,24,2、补码表示法,定义:正数的补码就是正数的本身,负数的补码是原负数加上模。计算机运算受字长限制,属于有模运算.定点小数x0.x1x2.xn溢出量为2,以2为模定点整数x0 x1x2.xn溢出量为2,以2n+1为模定点小数x0.x1x2xn x 1x0 0,正数x补=符号 2+x 0
12、x-1 1,负数,2023/1/22,25,2、补码表示法,例:x=-0.1011 x补=10+x=10.0000-0.1011=1.0101y=-0.01111y补=10+y=10.00000-0.01111=1,10001定点整数x0 x1x2xn x 2nx0 0,正数,0 x补=符号 2n+1+x 0 x-2n 1,负数,2023/1/22,26,2、补码表示法,补码性质高位表明正负正数补码,尾数与原码相同范围-2n2n-1(定点整数)变相补码(双符号补码)为了防止溢出而设定,2023/1/22,27,2、补码表示法,最大的优点就是将减法运算转换成加法运算。X补-Y补=X补+-Y补例如
13、 X=(11)10=(1011)2 Y=(5)10=(0101)2已知字长n=5位X补-Y补=X补+-Y补=01011+11011=100110=00110=(6)10 注:最高1位已经超过字长故应丢掉无正零和负零之分但是,在求补码还要减法,电路繁琐,下面的反码表示解决着个问题。,2023/1/22,28,3、反码表示法,定义:正数的表示与原、补码相同,负数的补码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。电路容易实现,触发器的输出有正负之分。,2023/1/22,29,3、反码表示法,对尾数求反,它跟补码的区别在于末位少加一个1,所以可以推出反码的定义定点小数x0.x1x
14、2xn x 1x0 x反=2+x 2-n 0 x-1X1=+0.1011011,X1 反=0.1011011X2=-0.1011011,X2 反=1.0100100 1.1 1 1 1 1 1 1 0.1 0 1 1 0 1 1 1.0 1 0 0 1 0 0,2023/1/22,30,3、反码表示法,x 补=x 反+2-n(证明见书)反码表示有正0和负0之分上述公式解决了前边的问题(求补码还要减法)定点整数的反码定义见书,2023/1/22,31,4、移码表示法,移码表示法(用在阶码中)定点整数定义 x移=2n+x 2n x-2n 0000000011111111(-2n2n-1)例+101
15、1111 原码为01011111补码为01011111 反码为01011111移码为 11011111,2023/1/22,32,4、移码表示法,例-1011111 原码为11011111补码为10100001 反码为10100000移码为00100001特点:移码和补码尾数相同,符号位相反范围:-2n2n-1P22 浮点IEEE754表示e=-127+12800000000阶码表示数字”0”,尾数的隐含位为011111111阶码表示数字”无穷大”,尾数的隐含位为0p21例3-9,2023/1/22,33,例6以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。,202
16、3/1/22,34,例7将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、反码、补码、移码值。,2023/1/22,35,例8设机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?,(1)定点原码整数表示最大正数值(2151)10(32767)10最小负数值(2151)10(32767)10(2)定点原码小数表示 最大正数值(1215)10(0.111.11)2最小负数值(1215)10(0.111.11)2注:1符号,数字,2023/1/22,36,例9假设由
17、S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数,真值表示为(非IEEE754标准):(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?,(1)最大正数0 1111 1111 111 1111 1111 1111 1111 11111(12-23)2127(2)最小正数 000 000 000000 000 000 000 000 000 000 001.02128(3)最小负数111 111 111111 111 111 111 111 111 111 111(1223)2127(4)最大负数100 000 000000 000
18、000 000 000 000 000 001.02128,2023/1/22,37,2.1.3字符和字符串(非数值)的表示方法,符号数据:字符信息用数据表示,如ASCII等;字符表示方法ASCII:用一个字节来表示,低7位用来编码(128),最高位为校验位,参见教材P24表2.1字符串的存放方法,CAI,2023/1/22,38,2.1.4汉字的存放,汉字的表示方法(一级汉字3755个,二级汉字3008个)输入码国标码一级(1655)*94二级(5687)*94图形符号(682个)(0109)*94拼音、五笔汉字内码:汉字信息的存储,交换和检索的机内代码,两个字节组成,每个字节高位都为1(区
19、别于英文字符),2023/1/22,39,2.1.4汉字的存放,汉字字模码:汉字字形点阵汉字库,2023/1/22,40,2.1.5校验码,校验码(只介绍奇偶校验码)引入:信息传输和处理过程中受到干扰和故障,容易出错。解决方法:是在有效信息中加入一些冗余信息(校验位)奇偶校验位定义设(01n1)是一个n位字,则奇校验位定义为:C01n1,式中代表按位加,表明只有当中包含有奇数个1时,才使C1,即C0。同理可以定义偶校验。只能检查出奇数位错;不能纠正错误。p26例10自己看一下。其它还有Hamming,CRC,2023/1/22,41,2.2 定点加法、减法运算,2.2.1补码加减法2.2.2溢
20、出检测2.2.3基本的加法和减法器2.2.4十进制加法器,2023/1/22,42,2.2.1补码加减法,补码加法公式:x+y补=x补+y补补码减法 为了将减法转变为加法,需证明公式:x-y补=x补+-y补(证明)为了求得同时-y补,需要证明-y补=乛y补+2-n(意义是-y补等于y补取反,末位加1),2023/1/22,43,补补补证明,假设1,1,1 现分四种情况来证明(1)0,0,则0 补=x,补=y,补=x+y所以等式成立.(2)0,0,则0或0时,2()2,进位2必丢失,又因()0,故补补补当0时,2()2,又因()0,故补补2()补所以上式成立,2023/1/22,44,补补补证明
21、,(3)0,则0或 0 这种情况和第2种情况一样,把和的位置对调即得证。(4)0,0,则0 相加两数都是负数,则其和也一定是负数。补2,补2补补222(2)上式右边分为”2”和(2)两部分.既然()是负数,而其绝对值又小于1,那么(2)就一定是小于2而大于1的数,进位”2”必丢失.又因()0,所以补补2()补,2023/1/22,45,2.2.1补码加减法,如:y=0.0111 y补=0.0111-y补=1.1001,从右边到左边,除了第一个1和右边的0保持不变以外,其它按位取反,很重要!,2023/1/22,46,2.2.1补码加减法,例 x=-0.1011,y=0.0111x补=1.010
22、1 y补=0.0111x+y补=x补+y补=1.0101+0.0111=1.1100 x+y=-0.0100例 x=+0.11011,y=-0.11111x补=0.11011 y补=1.00001-y补=0.11111x-y补=x补+-y补=1.11010,2023/1/22,47,2.2.2 溢出的检测,溢出的检测可能产生溢出的情况两正数加,变负数,上溢(大于机器所能表示的最大数)两负数加,变正数,下溢(小于机器所能表示的最小数),2023/1/22,48,2.2.2 溢出的检测,课堂作业:例3:0.1011,0.1001,求例4:0.1101,0.1011,求,2023/1/22,49,2
23、.2.2 溢出的检测,一、检测方法1、双符号位法(参与加减运算的数采用变形补码表示)x 2x0 x补=4+x 0 x-2 Sf1 SF2 0 0正确(正数)01上溢10下溢11正确(负数)Sf1 表示正确的符号,逻辑表达式为V=Sf1 Sf2,可以用异或门来实现,2023/1/22,50,2.2.2 溢出的检测,二、检验举例:0.1100,0.1000,求 0.1100,-0.1000,求 结果出现了01或10的情况就为溢出,2023/1/22,51,2.2.2 溢出的检测,2、单符号位法Cf C000正确(正数)01上溢10下溢11正确(负数)V=Cf C0 其中Cf为符号位产生的进位,C0
24、为最高有效位产生,2023/1/22,52,2.2.3基本的加法和减法器,基本的加法和减法器半加器HiAi Bi不考虑进位全加器考虑低位进位Ci-1和向高位的进位Ci,2023/1/22,53,一位全加器真值表,2023/1/22,54,FA逻辑方程,因为:,2023/1/22,55,FA逻辑方程,逻辑方程见下,2023/1/22,56,FA逻辑电路和框图,FA(全加器)逻辑电路图 FA框图,2023/1/22,57,n位行波进位加法器,图2-3行波进位的补码加法/加法器,2023/1/22,58,2.定点乘法运算,2.3.1 定点原码乘法2.3.2 定点补码乘法,2023/1/22,59,2
25、.3.1 定点原码乘法,乘法实现方法在现有的加法和减法器的基础上增加适当的以为线路及控制逻辑可以实现用LSI和VLSI工艺实现专用的乘法器编制子程序(单片机等低端机器),2023/1/22,60,1、定点原码乘法原理,x原=xf.xn-1x1x0 y原=yf.yn-1y1y0 x.y原=(xf yf)+(0.xn-1x1x0).(0.yn-1y1y0)尾数乘法如下:设0.1101,0.1011 0.1 1 0 1()0.1 0 1 1()1101 1101 0000 1101 0.10001111(),2023/1/22,61,1、定点原码乘法原理,n位乘n位积可能为2n位.乘积的最后是所有部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算 方法 运算器 课件
链接地址:https://www.31ppt.com/p-2163976.html