组成原理——chp2_第1页
组成原理——chp2_第2页
组成原理——chp2_第3页
组成原理——chp2_第4页
组成原理——chp2_第5页
已阅读5页,还剩186页未读 继续免费阅读

下载本文档

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

文档简介

1、2021-9-211第二章第二章 运算方法和运算器运算方法和运算器2.1 数据与文字的表示2.2 定点加法、减法运算2.3 定点乘法运算2.4 定点除法运算2.5 定点运算器的组成2.6 浮点运算与浮点运算器返回5 weeks2021-9-2122.1数据与文字的表示方法数据与文字的表示方法2.1.1数据格式2.1.2数的机器码表示2.1.3字符与字符串的表示方法2.1.4汉字的表示方法2.1.5校验码2021-9-2132.1数据与文字的表示方法数据与文字的表示方法l计算机中使用的数据可分成两大类:l符号数据:非数字符号的表示(ASCII、汉字、图形等)l数值数据:数字数据的表示方式(定点、

2、浮点)l计算机数字和字符的表示方法应有利于数据的存储、加工(处理)、传送;l编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利于信息处理(速度、方便)2.1.1数据格式数据格式一、定点表示法 l所有数据的小数点位置固定不变 l理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式): l纯小数 l纯整数 2021-9-2142021-9-2151、定点纯小数、定点纯小数 x0 x1 x2 x3 xn-1 xn表示数的范围是 11符号量值小数点固定于符号位之后,不需专门存放位置2.1.1数据格式数据格式2021-9-2162.1.1数据格式数据格

3、式2、纯小数的表示范围、纯小数的表示范围2021-9-2172.1.1数据格式数据格式3、定点纯整数 x0 x1 x2 x3 xn-1 xn表示数的范围是 - (2n-1) + (2n-1)符号量值小数点固定于最后一位之后,不需专门存放位置2021-9-2182.1.1数据格式数据格式4、定点表示法的特点l定点数表示数的范围受字长限制,表示数的范围有限;l定点表示的精度有限l机器中,常用定点纯整数表示; 2021-9-2192.1.1数据格式数据格式2、浮点表示法电子质量(克): 910-28 = 0.910-27太阳质量(克): 21033 = 0.210342021-9-21102.1.1

4、数据格式数据格式2、浮点表示:小数点位置随阶码不同而浮动1、格式:N=RE.M (二进制:N=2e.M)2、机器中表示指数E基数R,取固定的值,比如10或2,隐含表示尾数M阶符 阶码 数符 尾数 2021-9-21112.1.1数据格式数据格式浮点数的规格化表示:(1.75)10 = 1.11 20 (规格化表示)= 0.111 21 = 0.0111 22(1.75)10 = (1.11) 22021-9-21122.1.1数据格式数据格式3、IEEE754标准(规定了浮点数的表示格式,运算规则等)l规则规定了单精度(32)和双精度(64)的基本格式. l规则中,尾数用原码,指数用移码(便于

5、对阶和比较)2021-9-21132.1.1数据格式数据格式IEEE754标准标准l基数R=2,基数固定,采用隐含方式来表示它。l32位的浮点数:lS数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。lM是尾数, 23位,在低位部分,采用纯小数表示lE是阶码,8位,采用移码表示。移码比较大小方便。l规格化: 若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。尾数域最左位(最高有效位)总是1, 故这一位经常不予存储,而认为隐藏在小数点的左边。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。202

6、1-9-21142.1.1数据格式数据格式l64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数x的真值为: x=(-1)S(1.M)2E-1023 e=E-1023 = E = e + 1023l一个规格化的32位浮点数x的真值表示为 x=(-1)S(1.M)2E-127 e=E-127 = E = e + 1272021-9-21152.1.1数据格式数据格式l真值真值x为零表示:当阶码为零表示:当阶码E为全为全0且尾数且尾数M也为全也为全0时的值,结合符号位时的值,结合符号位S为为0或或1,有正零和负零之分。,有正零和负零之分。l真值真值

7、x为无穷大表示:当阶码为无穷大表示:当阶码E为全为全1且尾数且尾数M为全为全0时,结合符号位时,结合符号位S为为0或或1,也有,也有+和和-之分。之分。l这样在这样在32位浮点数表示中,要除去位浮点数表示中,要除去E用全用全0和全和全1(25510)表示零和)表示零和无穷大的特殊情况,指数的偏移值不选无穷大的特殊情况,指数的偏移值不选128(10000000),而选),而选127(01111111)。对于规格化浮点数,)。对于规格化浮点数,E的范围变为的范围变为1到到254,真正的指,真正的指数值数值e则为则为-126到到+127。因此。因此32位浮点数表示的绝对值的范围是位浮点数表示的绝对值

8、的范围是10-381038(以(以10的幂表示)。的幂表示)。l浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片而单片机中多采用定点表示。机中多采用定点表示。2021-9-21162.1.1数据格式数据格式浮点数表示范围如下图所示浮点数表示范围如下图所示2021-9-21172.1.1数据格式

9、数据格式例例1若浮点数若浮点数x的的754标准存储格式为标准存储格式为(41360000)16,求其浮点数的十,求其浮点数的十进制数值。进制数值。解解(1)将将16进制数展开后,可得二制数格式为进制数展开后,可得二制数格式为 0 100 00010 011 0110 0000 0000 0000 0000 符号符号S 阶码阶码E(8位位) 尾数尾数M(23位位)(2)指数)指数e=E-127=10000010-01111111=00000011=(3)10包括隐藏位包括隐藏位1的尾数的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011(3)于是有)于是有

10、x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)102021-9-21182.1.1数据格式数据格式例2 将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解: (1)首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011 (2)然后移动小数点,使其在第1,2位之间 10100.10011=1.01001001124 e=4于是得到: S=0, E=4+127=131, M=010010011(3)最后得到32位浮点数的二进制存储格式为:0.10000011.01001001100000000000

11、000=(41A4C000)16lhttp:/ 要解决在计算机内部数的正、负符号和小数点运算问题。l原码l反码l补码l移码2021-9-21211、原码表示法、原码表示法l定点小数x0. x1x2xn x 1x0 0,正x原= 符号 1-x 0 x -1 1,负数l有正0和负0之分l范围-(1-2-n) +(1-2-n)例:x=+0.11001110 , y=-0.11001110 x原=0.11001110 y原=1.110011102021-9-21221、原码表示法、原码表示法l定点整数X0X1X2Xn x 2nx0 0,正数x原= 符号 2n-x 0 x -2n 1,负数说明:l有正0

12、和负0之分l范围 -(2n-1) +(2n-1)l例:x=+11001110,y=-11001110 x原=011001110 y原=1110011102021-9-21231、原码表示法、原码表示法 原码特点:l表示简单,易于同真值之间进行转换,实现乘除运算规则简单。l进行加减运算十分麻烦。2021-9-21242.1.1数据格式数据格式2、补码表示法l生活例子:现为北京时间下午4点,但钟表显示为7点。有两种办法校对:(1) 做减法 7-3 = 4 (逆时针退3格)(2) 做加法 7+9 = 16 (顺时针进9格)16 (mod 12) = 16-12 = 4 (以12为模,变成4)l对于计

13、算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,若再加1成为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的模为28。在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。把补数用到计算机对数的处理上,就是补码。2021-9-21252、补码表示法、补码表示法l定义:正数的补码就是正数的本身,负数的补码是原负数加上模。l计算机运算受字长限制,属于有模运算.定点小数x0.x1x2xn,以2为模定点整数x0.x1x2xn,以2n+1为模l定点小数x0.x1x2xn x 1x0 0

14、,正小数x补= 符号 2+x 0 x -1 1,负小数2021-9-21262、补码表示法、补码表示法l定点整数x0.x1x2xn x 2nx0 0,正整数x补= 符号 2n+1+x 0 x -2n 1,负整数补码最大的优点就是将减法运算转换成加法运算减法运算转换成加法运算。通常不按表达式求补码,而通过反码来得到。通常不按表达式求补码,而通过反码来得到。【例例】求求-5的补码。(的补码。(负数的补码就是对反码加负数的补码就是对反码加1)因为给定数是负数,则符号位为因为给定数是负数,则符号位为“1”。后七位:后七位:-5的原码(的原码(10000101)符号位不变(符号位不变(10000101)

15、数值位取反(数值位取反(11111010)加加1(11111011)所以所以-5的补码是的补码是11111011。2021-9-21273、反码表示法、反码表示法l定义:正数的表示与原、补码相同,负数的补码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。l电路容易实现,触发器的输出有正负之分。2021-9-21283、反码表示法、反码表示法l对尾数尾数求反,它跟补码的区别在于末位少加一个1,所以可以推出反码的定义l定点小数x0.x1x2xn x 1x0 x反= 2+x 2-n 0 x -1X1=+0.1011011 , X1 反 =0.1011011X2= -0.1011011

16、 , 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 2021-9-21293、反码表示法、反码表示法lx 补=x 反+2-n(证明见书)l反码表示有正0和负0之分2021-9-21304、移码表示法、移码表示法l移码表示法(用在阶码中用在阶码中)l定点整数定义 x移=2n+x 2n x-2n l0000000011111111(-2n2n-1)l例1 x=+1011111 原码为01011111 补码为01011111 反码为01011111 移码为110111112021-9-21314、移码表示法、移码

17、表示法例2 x=-1011111 原码为11011111补码为10100001 反码为10100000移码为00100001特点:移码和补码尾数相同,符号位相反移码和补码尾数相同,符号位相反范围:-2n2n-1浮点IEEE754表示e=-127+12800000000阶码表示数字”0”,尾数的隐含位为011111111阶码表示数字”无穷大” ,尾数的隐含位为0移码的由来移码的由来l在数轴上,移码所表示的范围, 恰好对应于真值在数轴上的范围向正方向移动2n个单元l补码表示的好处在于去掉了负号, 但人们很难从形式上判断真值大小, 与人们的习惯不符; 因为补码表示中符号也成了一位二进制的数, 而移码

18、的表示中与补码相差一个符号位, 而且可以从移码看出真值的大小, 转换方便。l进一步解释: l-128移: 00000000-127移: 00000001l-126移: 00000010.+126移: 11111110l+127移: 111111112021-9-21322021-9-2133例例6以定点整数为例以定点整数为例,用数轴形式说用数轴形式说明原码、反码、补码表示范围和可能明原码、反码、补码表示范围和可能的数码组合情况。的数码组合情况。 2021-9-2134例例7将十进制真值将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、列表表示成二进制数及原码、反码、补码、移码

19、值。反码、补码、移码值。2021-9-2135例例8设机器字长设机器字长16位位,定点表示定点表示,尾数尾数15位位(1)定点原码整数表示时,最大正数是多少?最小负数是多少? 0 111 111 111 111 111 最大正整数x(2151)10(32767)101 111 111 111 111 111 最小负整数x(1215)10(2151)10(32767)10(2)定点原码小数表示 ,最大正数是多少?最小负数是多少?0 111 111 111 111 111 最大正小数x(1215)101 111 111 111 111 111 最小负小数x(1 215)102021-9-2136例

20、例9假设由假设由S,E,M三个域组成的一个三个域组成的一个32位二进制字所表示的非零规位二进制字所表示的非零规格化浮点数格化浮点数,真值表示为(注意此例非真值表示为(注意此例非IEEE754标准):标准):(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?是多少?(1)最大正数最大正数0 11 111 111 111 111 111 111 111 111 111 111(12-23)2127(2)最小正数最小正数 0 00 000 000 000 000 000 000 000 000

21、000 001.02128(3)最小负数最小负数1 11 111 111 111 111 111 111 111 111 111 111(1223)2127(4)最大负数最大负数1 00 000 000 000 000 000 000 000 000 000 001.02128 N=RE.M2021-9-21372.1.3字符和字符串的表示方法字符和字符串的表示方法l符号数据:字符信息用数据表示,如ASCII等;l字符表示方法ASCII:用一个字节来表示,低7位用来编码(128),最高位为校验位,参见教材P24表2.1l字符串的存放方法CAI2021-9-21382.1.4汉字的表示方法汉字的

22、表示方法l汉字的表示方法(一级汉字3755个,二级汉字3008个)l输入码l国标码一级(1655)*94二级(5687)*94图形符号(682个)(0109)*94l拼音、五笔l汉字内码:汉字信息的存储,交换和检索的机内代码,两个字节组成,每个字节高位都为1(区别于英文字符)2021-9-21392.1.4汉字的存放汉字的存放l汉字字模码:汉字字形l点阵l汉字库2021-9-21402.1.5校验码校验码l校验码(只介绍奇偶校验码)l引入:信息传输和处理过程中受到干扰和故障,容易出错。l解决方法:是在有效信息中加入一些冗余信息(校验位)l奇偶校验位定义l设(01n1)是一个n位字,则奇校验位定

23、义为:C0 1 n1,式中 代表按位加,表明只有当中表明只有当中包含有奇数个包含有奇数个1时时,才使才使C1,即即C 0。同理可以定义偶校验。同理可以定义偶校验。 l只能检查出奇数位错;不能纠正错误。lp26例10自己看一下。l其它还有Hamming,CRC练习练习1某机器字长32位,定点表示,其中31位表示尾数,1位是符号位,问:定点原码整数表示时,最大正数是多少?最小负数是多少?定点原码小数表示时,最大正数是多少?最小负数是多少?。解:定点原码整数表示时,最大正数(2311);最小负数(2311)定点原码小数表示时,最大正数(12(-31));最小负数(12(-31))2写出下列二进制数的

24、原码、反码、补码和移码。0 解:(0.0000)原00000 (00000)原10000(0.0000)反00000 (00000)反11111(0.0000)补00000 (00000)原00000(0.0000)移10000 (00000)原100002021-9-21412021-9-21422.2 定点加法、减法运算定点加法、减法运算2.2.1 补码加法 2.2.2 补码减法 2.2.3 溢出概念与检测方法 2.2.4 基本的二进制加法/减法器加法规则:加法规则: 先判符号位,若相同,绝对值相加,结果符号不变先判符号位,若相同,绝对值相加,结果符号不变; ; 若不同,则作减法,若不同,

25、则作减法, | |大大| - | - |小小| |,结果符号与,结果符号与| |大大| |相同。相同。减法规则:减法规则: 两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。反后的减数按原码加法进行运算。补码加减法运算补码加减法运算 1.1.原码加原码加/ /减法运算减法运算补码加法的公式补码加法的公式: : x x 补补 y y 补补 x xy y 补补 (mod 2) 在模在模2 2意义下意义下, ,任意两数的补码之和等于该两数之和的补码任意两数的补码之和等于该两数之和的补码。 这是补码

26、加法的理论基础。这是补码加法的理论基础。.1补码加法补码加法特点:特点:不需要事先判断符号,符号位与码值位一起参加运算。不需要事先判断符号,符号位与码值位一起参加运算。 符号位相加后若有进位,则舍去该进位数字。符号位相加后若有进位,则舍去该进位数字。补码加法的特点:补码加法的特点: (1 1)符号位要作为数的一部分一起参加运算;)符号位要作为数的一部分一起参加运算; (2 2)在模)在模2 2的意义下相加,即大于的意义下相加,即大于2 2的进位要丢掉。的进位要丢掉。其结论也适用于定点整数。其结论也适用于定点整数。2021-9-2145补补补补补补证明证明l假设1, 1, 1 l

27、现分四种情况来证明 (1)0,0,则0 补=x, 补=y, 补=x+y所以等式成立.(2)0,0,则0或0时,2 () 2,进位2必丢失,又因()0,故补补补当0时,2 () 2,又因()0,故补补2()补所以上式成立2021-9-2146补补补补补补证明证明(3)0,则0或 0 这种情况和第2种情况一样,把和的位置对调即得证。 (4)0,0,则0 相加两数都是负数,则其和也一定是负数。补2,补2补补222(2)上式右边分为”2”和(2)两部分.既然()是负数,而其绝对值又小于1,那么(2)就一定是小于2而大于1的数,进位”2”必丢失.又因()0, 所以补补2()补2021-9-21472.2

28、.1补码加法补码加法l例11 x=+1001 , y=+0101 , 求 x+y=? 解:x补 = 01001 , y补 = 00101 x补0 1 0 0 1 y补0 0 1 0 1x+y补 0 1 1 1 0 x+y = +1110 2021-9-21482.2.1补码加法补码加法解:x补 = 01011 , y补 = 11011x补0 1 0 1 1y补1 1 0 1 1x+y补1 0 0 1 1 0 x+y = +0110 由以上两例看到,补码加法的特点,一是符号位要作为数的一部分一由以上两例看到,补码加法的特点,一是符号位要作为数的一部分一起参加运算,二是要在模起参加运算,二是要在模

29、2 2的意义下相加,即超过的意义下相加,即超过2 2的进位要丢掉的进位要丢掉例例12 x=+1011 , y=-0101 , 求求 x+y=?2021-9-21492.2.2补码减法补码减法 公式:x补补 - y补补 = x补补 + -y补补-y补补 = -y补补 + 2-n补码减法补码减法减法运算化为加法完成。减法运算化为加法完成。关键是求关键是求-Y补补 补码减法运算的公式:补码减法运算的公式: x x y y 补补 x x 补补 y y 补补 x x 补补 y y 补补公式证明:公式证明: 只要证明只要证明 y y 补补 y y 补补, , 上式即得证。上式即得证。 x xy y 补补

30、x x 补补 y y 补补(mod 2)(mod 2) 令令 y = y = x x00补补 x x 补补 + + x x 补补故故 xx补补 x x补补 (mod 2)(mod 2) 证明:证明:两数差的补码等于两数补码之差两数差的补码等于两数补码之差2021-9-21512.2.2补码减法补码减法例13 已知x1=-1110 , x2=+1101 , 求: x1补 , -x1补 , x2补 , -x2补 。解:x1补 = 10010-x1补 = -x1补 + 2-4 = 01101 + 00001 = 01110 x2补 = 01101-x2补 = -x2补 + 2-4 = 10010 +

31、 00001 = 100112021-9-21522.2.2补码减法补码减法例14 x=+1101 , y=+0110 , 求 x-y=?解:x补 = 01101 y补 = 00110 , -y补 = 11010 x补0 1 1 0 1 -y补1 1 0 1 0 x-y补 1 0 0 1 1 1 x-y = +0111 利用利用Windos计算器计算器ly=+0110l-y补 = 110102021-9-2153习题课(习题课(1)1在用 表示的机器数中,零的编码是唯一的。答:答:补码。 原码 反码 补码0 00000000 00000000 000000000 10000000 111111

32、11 00000000+0的补码就是其原码,也就是说是的补码就是其原码,也就是说是0000 0000而已(对于而已(对于8位来说)位来说)-0的补码是其反码加的补码是其反码加1,其反码,其反码是是1111 1111,当然,其反码加,当然,其反码加1后就是溢出一个进位后,仍然是后就是溢出一个进位后,仍然是0000 0000.2移码常用来表示浮点数的 部分,移码和补码比较,它们除 外,其他各位都 。答:答:阶码,符号位,相同。l采用浮点表示时,若尾数为规格化形式,则浮点数的表示范围取决于 的位数,精度取决于 的位数, 确定浮点数的正负。答:阶码,尾数,数符答:阶码,尾数,数符2021-9-2154

33、1. 对真值0表示形式唯一的机器数是 。A.原码 B.补码和移码 C.补码 D.反码2. 在整数定点机中,下述第 说法正确。A.原码和反码不能表示-1,补码可以表示-1。 B.三种机器数均可表示-1C.三种机器数均可表示-1,且三种机器数的表示范围相同D.以上说法均不对。3. 在小数定点机中,下述第 说法正确。A.只有补码能表示-1 B.只有原码能表示-1C.三种机器数均不能表示-1 D.以上说法均不对4. 设寄存器内容为11111111,若它等于-0,则为_ A.原码 B.补码 C.反码 D.移码1、C;2、B;3、A;4、C2021-9-2155l如果x为负数,由x补求-x补是 。A. x

34、补各值保持不变B. x补符号位变反,其他各位不变C. x补除符号位外,各位变反,末位加1D. x补连同符号位一起各位变反,末位加1解:求变补即-x补的规则是x补连同符号位一起各位变反,末位加1。本题答案为D。2021-9-2156(1)寄存器A和B中的内容分别是什么?(2)x和y相加后的结果存放在C寄存器中,寄存器C中的内容是什么?(3)x和y相减后的结果存放在D寄存器中,寄存器D中的内容是什么?解:解:(1)x=-68=(-100 0100)2,则,则-68补补=1011 1100=BCH;y=-80=-(101 0000)2,则,则-80补补=1011 0000=B0H,所以寄存器,所以寄

35、存器A和和B中的内容分别是中的内容分别是BCH、B0H。(2)x+y补补=x补补+y补补=1011 1100+1011 0000=1 0110 1100=6CH,所,所以寄存器以寄存器C中的内容是中的内容是6CH,其真值为,其真值为108。(3)x-y补补=x补补+-y补补=1011 1100+0101 0000=1 0000 1100=0CH,最,最高位前面的一位被丢弃(取模运算),结果为高位前面的一位被丢弃(取模运算),结果为12,所以寄存器,所以寄存器D中的内容中的内容是是0CH,其真值为,其真值为12。2021-9-2157简答题:简答题:假设有两个整数假设有两个整数x和和y,x=-6

36、8,y=-80,采用补码形式(含,采用补码形式(含1位符位符号位)表示,号位)表示,x和和y分别存放在寄存器分别存放在寄存器A和和B中。另外,还有两个寄存器中。另外,还有两个寄存器C和和D。A、B、C、D都是都是8位的寄存器。请回答下列问题(要求最终用十六进位的寄存器。请回答下列问题(要求最终用十六进制表示二进制序列):制表示二进制序列):2021-9-21582021-9-21592.2.3溢出概念与检测方法溢出概念与检测方法l溢出的概念 l可能产生溢出的情况 l两正数加,变负数,正溢(大于机器所能表示的最大数) l两负数加,变正数,负溢(小于机器所能表示的最小数) 下面举两个例子。2021

37、-9-21602.2.3溢出概念与检测方法溢出概念与检测方法例15 x=+1101 , y=+1001 , 求 x+y 。解:x补=01011 , y补=01001x补0 1 0 1 1x补0 1 0 0 1x+y补1 0 1 0 0两个正数相加的结果成为负数,表示正溢。2021-9-21612.2.3溢出概念与检测方法溢出概念与检测方法 例16 x=-1101 , y=-1011 , 求 x+y 。解:x补=10011 , y补=10101x补1 0 0 1 1x补1 0 1 0 1x+y补0 1 0 0 0两个负数相加的结果成为正数,表示负溢。2021-9-21622.2.3溢出概念与检测

38、方法溢出概念与检测方法溢出的概念2021-9-21632.2.3溢出概念与检测方法溢出概念与检测方法检测方法 1、双符号位法(变形补码) 双符号位,双符号位,00表示正号,表示正号,11表示负号。如果进位将会导致符号位不一致,从表示负号。如果进位将会导致符号位不一致,从而检测出溢出。结果的符号位为而检测出溢出。结果的符号位为01时,称为上溢;为时,称为上溢;为10时,称为下溢。时,称为下溢。x补 = 2n+2 + x ( mod 2n+2 ) Sf1 Sf2 00正确(正数)01 正溢10 负溢11正确(负数) Sf1 表示正确的符号,逻辑表达式为V=Sf1 Sf2,可以用异或门异或门(xor

39、)来实现l双符号位法(变形补码) 双符号位,双符号位,00表示正号,表示正号,11表示负号。如果进位将会导致符号位不一致,从而表示负号。如果进位将会导致符号位不一致,从而检测出溢出。结果的符号位为检测出溢出。结果的符号位为01时,称为上溢;为时,称为上溢;为10时,称为下溢。时,称为下溢。例如设X=+1000001,Y=+1000011采用双符号为表示X=00 1000001,Y=00 1000011X+Y补=01 0000100,实际上,运算结果产生了正溢出。 2021-9-21642021-9-21652.2.3溢出概念与检测方法溢出概念与检测方法例17 x=+01100 , y=+010

40、00 , 求 x+y 。解: x补 = 001100 , y补 = 001000 x补0 0 1 1 0 0y补0 0 1 0 0 0 x+y补0 1 0 1 0 0(表示正溢)2021-9-21662.2.3溢出概念与检测方法溢出概念与检测方法例18 x=-1100 , y=-1000 , 求 x+y 。解: x补 = 110100 , y补 = 111000 x补1 1 0 1 0 0y补1 1 1 0 0 0 x+y补1 0 1 1 0 0(表示负溢)溢出的检测方法溢出的检测方法 x x补补 0 0 1 0 1 1 1 0 1 1 + y + y补补 0 0 1 0 0 1 1 0 0

41、1 x+y x+y补补 1 1 0 1 0 0 0 1 0 0 x x补补 1 1 0 0 1 1 0 0 1 1 + y + y补补 1 1 0 1 0 1 0 1 0 1 x+y x+y补补 0 0 1 0 0 0 1 0 0 0溢出逻辑表达式为:溢出逻辑表达式为: V VS S1 1 S S2 2 S Sc c + + S S1 1 S S2 2 S Sc c (1 1)单符号位检测方法)单符号位检测方法F FA AV Vz z0 0y y0 0 x x0 0判判断断电电路路判断电路判断电路设两数符号位分别为设两数符号位分别为 S S1 1、S S2 2,和数符号位和数符号位 S SC

42、C(2 2)单符号位检测方法)单符号位检测方法 符号位进位符号位进位C Cf f,最高位进位,最高位进位C Cn nC Cf f = 0= 0,C Cn n = 0= 0C Cf f = 1= 1,C Cn n = 1= 1C Cf f = 0= 0,C Cn n = 1= 1C Cf f = 1= 1,C Cn n = 0= 0FAFAz1z0Vc1c0y1x1y0 x0VC1Co 判断电路从上面例中看到: 当最高有效位有进位而符号位无进位时,产生上溢; 当最高有效位无进位而符号位有进位时,产生下溢。 (简单地说是正数相加为负数或负数相加为正数则产生溢出) 故溢出逻辑表达式为: VCfCo

43、其中C Cf f为符号位产生的进位为符号位产生的进位,C,Co o为最高有效位产生的进位。为最高有效位产生的进位。 此逻辑表达式也可用异或门实现。2021-9-21702.2.3溢出概念与检测方法溢出概念与检测方法单符号位法 lCf C00 0正确(正数)0 1正溢1 0负溢1 1正确(负数) lV=Cf C0 ,其中Cf为符号位产生的进位,C0为最高有效位产生2021-9-21712.2.4 基本的二进制加法基本的二进制加法/减法器减法器输入输出AiBiCiSiCi10000000110010100110110010101011100111111FASiAi BiCiCi+1一位全加器一位全

44、加器iiiiiiCBABAC)(1iiiiCBAS其中A,B为要相加的数,Ci为进位输入;S为和,Ci1是进位输出;一位全加器真值表一位全加器真值表2021-9-21722.2.4 基本的二进制加法基本的二进制加法/减法器减法器lFA逻辑方程2021-9-21732.2.4 基本的二进制加法基本的二进制加法/减法器减法器FA逻辑电路和框图CAI2021-9-21742.2.4 基本的二进制加法基本的二进制加法/减法器减法器n位行波进位加法器图2-3行波进位的补码加法/加法器CAIl方法:方法: 把各个非十进制数按权展开求和把各个非十进制数按权展开求和l(1011) D 110301021101

45、1100l (1011)B 123022121120=(11)Dl (1011)O 183082181180=(521) Dl(1011)H1163016211611160(4113) DN进制与十进制的转换十进制进制与十进制进制与N的转换的转换22211余数0251221210201最低位最高位所以(22)D=(10110) B整数部分:除N取余,自下向上读数小数部分:乘N取整,自上而下读数0.812521.6250取整10.625021.250010.250020.500000.500021.00001最低位最高位所以(0.8125)D= (0.1101)B十进制进制与十进制进制与N的转换

46、的转换二进制数与八进制数、十六进制数的相互转换二进制数与八进制数、十六进制数的相互转换 l二、八、十六进制的相互转换在应用中占有重要的地位。由于这三种进制的权之间有内在的联系,即23=8,24=16,因而它们之间转换比较容易,好每位八进制数相当于三位二进制数,每位十六进制数相当于四位二进制数。l在转换时,位组划分是以小数点为中心向左右两边延伸,中间的0不能省略,两头不够时可以补0。l三位计数法三位计数法l将二进制数从小数点开始,整数部分从右向左将二进制数从小数点开始,整数部分从右向左3位一组,小数部分从左向右位一组,小数部分从左向右3位一组,不足位一组,不足3位位用用0补足补足整数:11010

47、11010105623(3265)O小数:1110101110172702(0.7272)O所以(11010110101.11101011101)B= (3265.7272)O二进制数转八进制数二进制数转八进制数八进制数转二进制数八进制数转二进制数l三位计数法三位计数法l从小数点开始,向左或向右每一位八进制数用相从小数点开始,向左或向右每一位八进制数用相应的应的3位二进制数取代,然后将其连在一起即可位二进制数取代,然后将其连在一起即可。l将八进制数将八进制数(6237.431)o 转换成二进制数转换成二进制数(6237.431)O=(11001001111.100011001)B6237.43

48、1110 010 011 111100 011 001二进制数转十六进制数二进制数转十六进制数l四位计数法l二进制数与十六进制数之间的转换也简捷方便,他们之间的对应关系是,十六进制数的每一位对应二进制数的4位。整数:110100111111010AF906(69FA)H小数:10111101101001BDA004(0.BDA4)H所以(110100111111010.10111101101001)B= (69FA.BDA4)H十六进制数转二进制数十六进制数转二进制数l四位计数法l将十六进制数以小数点为界,向左或向右每一位十六进制数用相应的4位二进制数取代,然后将其连在一起(3AB.11)H=

49、(1110101011.00010001)B3AB.110011 1010 10110001 00012021-9-21832021-9-2184l二进制下用1表示真,0表示假,则异或的运算法则为:0 0=0,1 0=1,0 1=1,1 1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。l半加器半加器:电路是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。 是实现两个一位二进制数的加法运算电路。2021-9-2185异或也叫半加运算,其运算法则相当于不带进位的异或也叫半加运算,其运算法则相当于不带进位的二进制加法二进制加法2021-9-21862.2.4

50、基本的二进制加法基本的二进制加法/减法器减法器iiiiiiiiiiiiCBABACBCABAC)(1iiiiCBAS其中A,B为要相加的数,Ci为进位输入;S为和,Ci1是进位输出;n n 个个1位的全加器位的全加器(FA)可级联成一个可级联成一个n 位的行波进位加位的行波进位加减器。减器。nM为方式控制输入线为方式控制输入线, 当当M=0时,作加法时,作加法(A+B)运算;运算; 当当M=1时,作减法时,作减法(A-B)运算。转化成运算。转化成A补补+-B补补运算,运算,求补过程由求补过程由B+1来实现。来实现。n 起始进位连接到功能方式线起始进位连接到功能方式线M上,作减法时上,作减法时M

51、=1,相当,相当于在加法器的最低位上加于在加法器的最低位上加1。n图中左边是单符号位法的溢出检测逻辑;当图中左边是单符号位法的溢出检测逻辑;当CnCn1时,运算无溢出;而当时,运算无溢出;而当Cn Cn1时,运算有溢出,经异时,运算有溢出,经异或门产生溢出信号。或门产生溢出信号。2.2.4 基本的二进制加法基本的二进制加法/减法器减法器iiiiiiCBABAC)(1iiiiCBAS2021-9-21892021-9-21902. 定点乘法运算定点乘法运算2.3.1 原码并行乘法 2.3.2 直接补码并行乘法2021-9-21912.3.1原码并行乘法原码并行乘法1、人工算法与机器算法的同异性2

52、、不带符号的阵列乘法器3、带符号的阵列乘法器2021-9-21921、人工算法与机器算法的同异性、人工算法与机器算法的同异性lx原=xf.xn-1x1x0 y原=yf.yn-1y1y0lx.y原=(xf yf)+(xn-1x1x0).(yn-1y1y0)l用习惯方法求乘积如下: 设1101,1011 1 1 0 1 () 1 0 1 1() 1101 1101 0000 1101 10001111()2021-9-21931、人工算法与机器算法的同异性、人工算法与机器算法的同异性n位乘位乘n位积可能为位积可能为2n位位.乘积的最后是所有部分积之和乘积的最后是所有部分积之和 采用流水式阵列乘法器

53、,取代串行方案。2021-9-21942、不带符号位的阵列乘法器、不带符号位的阵列乘法器不带符号阵列乘法器逻辑图CAI2021-9-21952、不带符号位的阵列乘法器、不带符号位的阵列乘法器CAI2021-9-21962、不带符号位的阵列乘法器、不带符号位的阵列乘法器例19 参见图2.5,已知不带符号的二进制整数A=11011,B=10101,求每一部分乘积项aibj的值与p9p8p0的值。解:1 1 0 1 1 A (2710)1 0 1 0 1 B (2110)1 1 0 1 1 a4b0=1, a3b0=1, a2b0=0, a1b0=1, a0b0=1 (b0*(a1234)0 0 0

54、 0 0 a4b1=0, a3b1=0, a2b1=0, a1b1=0, a0b1=0 1 1 0 1 1 a4b2=1, a3b2=1, a2b2=0, a1b2=1, a0b2=1 0 0 0 0 0 a4b3=0, a3b3=0, a2b3=0, a1b3=0, a0b3=0 1 1 0 1 1 a4b4=1, a3b4=1, a2b4=0, a1b4=1, a0b4=1 1 0 0 0 1 1 0 1 1 1 PP = p9p8p7p6p5p4p3p2p1p0 = 1000110111 (56710)2021-9-21973、带符号位的阵列乘法器、带符号位的阵列乘法器l乘积符号的运算法

55、则是乘积符号的运算法则是:同号相乘为正,异号相:同号相乘为正,异号相乘为负。由于被乘数和乘数和符号组合只有四种乘为负。由于被乘数和乘数和符号组合只有四种情况情况( x xf f y yf f 00,01,10,11),因此积的符号可按,因此积的符号可按“异或异或”(按位加按位加)运算得到。运算得到。l数值部分的运算方法与普通的十进制小数乘法类数值部分的运算方法与普通的十进制小数乘法类似,不过对于用二进制表达式的数来说,其乘法似,不过对于用二进制表达式的数来说,其乘法规则更为简单一些。规则更为简单一些。一个负数的常规求补过程:一个负数的常规求补过程: 例:例: X=-1110X=-1110, 则

56、:则:XX补补=1 00=1 001010 ; Y=-0100Y=-0100, 则:则:YY补补=1 1=1 1100100 算法特点算法特点:从数据的最右边开始向左边逐位看数,找到从数据的最右边开始向左边逐位看数,找到第一个第一个“1”1”为止。该为止。该“1”1”的左边各位全部取反(不包的左边各位全部取反(不包括符号位);该括符号位);该“1”1”的右边各位(包括该的右边各位(包括该“1”1”)保持)保持不变不变。3、带符号位的阵列乘法器、带符号位的阵列乘法器2021-9-21993、带符号位的阵列乘法器、带符号位的阵列乘法器l求补电路原理:算前求补乘法器算后求补,见下图CAI2021-9

57、-211003 3、带符号的阵列乘法器、带符号的阵列乘法器l求补电路小结求补电路小结lE=0时,输入和输出相等lE=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变,左边各数值位按位取反l可以用符号作为E 的输入l原:1.11110 补:1.00010不变,左边数值位取反2021-9-211013 3、带符号的阵列乘法器、带符号的阵列乘法器 原码补码CAI3 3、带符号的阵列乘法器、带符号的阵列乘法器l前面所示的带求补级的阵列乘法器既适用于原码乘法,也适用于间接的补码乘法。l在原码乘法中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。l间接的补码阵列乘法所需要

58、增加的硬件较多。为了完成所必需的求补与乘法操作,时间大约比原码阵列乘法增加1倍。2021-9-211022021-9-21103解:x原=01111 , y原=11101 , |x|=1111 , |y|=1101符号位运算:0 1=11 1 1 11 1 0 11 1 1 10 0 0 01 1 1 11 1 1 11 1 0 0 0 0 1 1乘积符号为1,算后求补器输出11000011,xy原=111000011换算成二进制数真值是 xy = (-11000011)2 = (-195)10例20 设x=+15,y=-13,用带求补器的原码阵列乘法器原码阵列乘法器求出乘积 xy=?2021

59、-9-21104解:x补=10001 , y补=10011 , 乘积符号位运算:1 1=0尾数部分算前求补器输出算前求补器输出 |x|=1111 , |y|=11011 1 1 11 1 0 11 1 1 10 0 0 01 1 1 11 1 1 11 1 0 0 0 0 1 1乘积符号为乘积符号为0,算后求补器输出,算后求补器输出11000011,xy补补=011000011补码二进制数真值补码二进制数真值 xy=028127126121120 = (+195)10十进制数乘法验证十进制数乘法验证 xy = (-15)(-13) = +195例21 设x=-15,y=-13,用带求补器的补码

60、阵列乘法器补码阵列乘法器求出乘积xy=? 并用十进制数乘法进行验证。yy补补 补补 = y = y原原输入数据为补码,则算前、算后求补都可能需要,输入数据为补码,则算前、算后求补都可能需要,由符号位决定是否启动求补器。由符号位决定是否启动求补器。 xx补补= =0 0 1111 1111 ;( (符号位为符号位为0 0,算前无需求补,算前无需求补) ) yy补补= =1 1 0011 0011 ;( (符号位为符号位为1 1,算前需求补,使,算前需求补,使y y的数值变为正数的数值变为正数) ) 几点注释几点注释 对对 yy补补=1=100110011 的数值部分的数值部分( (0011001

温馨提示

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

评论

0/150

提交评论