版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第二章第二章 运算方法与运算器运算方法与运算器 运算方法和运算器运算方法和运算器本章内容:本章内容: 2.1 2.1 数据与文字的表示方法数据与文字的表示方法 2.2 2.2 定点加法、减法运算定点加法、减法运算 2.3 2.3 定点乘法运算定点乘法运算 2.4 2.4 定点除法运算定点除法运算 2.5 2.5 定点运算器的组成定点运算器的组成 2.6 2.6 浮点运算方法和浮点运算器浮点运算方法和浮点运算器 本章小结本章小结运算方法和运算器运算方法和运算器2.1 数据与文字的表示方法数据与文字的表示方法2.1.1 2.1.1 数据格式数据格式2.1.2 2.1.2 数的机器码表示数的机器码
2、表示2.1.3 2.1.3 字符与字符串的表示方法字符与字符串的表示方法2.1.4 2.1.4 汉字的表示方法汉字的表示方法2.1.5 2.1.5 校验码校验码 数据与文字的表示方法数据与文字的表示方法2.1.1 2.1.1 数据格式数据格式 计算机中常用的数据表示格式有两种:计算机中常用的数据表示格式有两种:(1)定点格式)定点格式(2)浮点格式)浮点格式 定点格式(定点格式(小数点位置小数点位置固定固定)容许的数值范围有)容许的数值范围有限,但要求的处理硬件比限,但要求的处理硬件比较简单较简单。 浮点格式浮点格式(小数点位置浮动小数点位置浮动)容容许的数值范围很大,但要求的处理许的数值范围
3、很大,但要求的处理硬件比较复杂硬件比较复杂 。数据格式数据格式1. 1. 定点数的表示方法定点数的表示方法定点表示定点表示:约定机器中所有数据的小数点位置是按约按约定固定不变定固定不变的,小数点就不再使用记号“.”来表示。定点数据的形式:纯小数纯小数或纯整数纯整数。 (设:(设:定点数表示为定点数表示为0 01 12 2n n 其中:其中:0 0符号位,符号位,0 0代表正号,代表正号,1 1代表负号)代表负号)小数点的位置约定在符号小数点的位置约定在符号位位x x0 0的后面的后面(不显示不显示)小数点的位置约定在数值小数点的位置约定在数值位位x xn n的后面的后面(不显示不显示)定点数的
4、表示方法定点数的表示方法定点数例定点数例例:例:X=+1010110.纯整数:纯整数:X = 01010110.正数,符号位取正数,符号位取0Y= - 1101001.纯整数:纯整数:Y = 11101001.负数,符号位取负数,符号位取1X=+0.11011Y=-0.10101符号位取符号位取0纯小数:纯小数:X = 0.11011符号位取符号位取1纯小数:纯小数:X = 1.10101纯整数:纯整数:X = 01010110符号位取符号位取0纯整数:纯整数:Y = 11101001符号位取符号位取1符号位取符号位取0纯小数:纯小数:X = 0.11011符号位取符号位取1纯小数:纯小数:X
5、 = 1.10101注意到注意到: 无论是整数无论是整数或是小数,或是小数,在机器数的在机器数的表示中,都表示中,都不出现小数不出现小数点点“.”,.”,只只是约定其位是约定其位置。置。定点数例定点数例(012n 各位均为各位均为0时最小;各位均为时最小;各位均为1时最大时最大)纯小数纯小数的表示范围:的表示范围: 0|12n (2.1) 纯整数纯整数的表示范围为的表示范围为: 0|2n1 (2.2) 目前计算机中多采用定点纯整数表示,因此将定点数目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为表示的运算简称为整数运算整数运算。 定点数的表示方法定点数的表示方法2、浮点数的表示方
6、法、浮点数的表示方法 例:例:156.78 =15.678101 = 1.5678102 = 0.15678103=MRE其中:其中:M为为尾数尾数;R为为基数基数;E为为阶码阶码(指数)(指数)。二进制数二进制数在定点计算机中,在定点计算机中,一般约定一般约定: 尾数尾数|M| x 01-x =1+ |x| 0 x -1对于对于定点整数定点整数 x x = =1 122n n,则原码的定义是,则原码的定义是: :对于对于定点整数定点整数,其原码形式为:,其原码形式为: 原原= =0 01 12 2n n, , 注意到注意到:原码机器中:原码机器中 “ “+0”+0”、“-0” -0” 有两种
7、形式:有两种形式:对于对于定点小数定点小数:+0+0原原 = =0 0. .0000 -00000 -0原原 = =1 1. .00000000对于对于定点整数定点整数:+0+0原原 = =0 000000000. . -0 -0原原 = =1 100000000. .数的原码表示数的原码表示 2n0 2n2n| 02n (2.8)符号符号数值数值一般情况下,对于一般情况下,对于定点小数定点小数,其真值与原码之间的转,其真值与原码之间的转换符合下面的规律:换符合下面的规律: x=+0 x=+0. .1 12 2n n 原原0 0. .1 12 2n n x=-0 x=-0. .1 12 2n
8、n 原原1 1. .1 12 2n n对于对于定点整数定点整数,其真值与原码之间的转换符合下面的,其真值与原码之间的转换符合下面的规律:规律: x=+ x=+ 1 12 2n n 原原0 01 12 2n n . . x=- x=- 1 12 2n n 原原1 11 12 2n n . .数的原码表示数的原码表示 原码表示法的主要特点是原码表示法的主要特点是简单、易懂简单、易懂,但它的最大缺,但它的最大缺点是:由于数值部分采用绝对值表示,因而使得加减法点是:由于数值部分采用绝对值表示,因而使得加减法运算比较复杂,而加减法运算正是计算机中最常使用的运算比较复杂,而加减法运算正是计算机中最常使用的
9、运算。所以,必须探讨解决方法运算。所以,必须探讨解决方法补码补码则正是一种解则正是一种解决方法。决方法。数的原码表示数的原码表示2.2.补码表示法补码表示法 补码的概念补码的概念(以钟表对时为例)以钟表对时为例) 假设现在的标准时间为假设现在的标准时间为4 4点正;点正; 而有一只表已经而有一只表已经7 7点了,为点了,为了校准时间,可以采用两种方法:了校准时间,可以采用两种方法:(1)(1)倒拨倒拨3 3小时小时 7-3=47-3=4(2)(2)顺拨顺拨9 9小时小时7+9=12+4=0+4=47+9=12+4=0+4=4显然:显然: 7-3= 7+9 7-3= 7+9 (mod12)(mo
10、d12)即即 -3= +9 -3= +9 (mod12)(mod12)当模数当模数Mod=12Mod=12时,时, (-3)(-3)是是+9+9补码。补码。XX补补= =模数模数+ X+ X其中其中,模数模数= =基数基数n n, , n n为计算装置的位数为计算装置的位数( (字长字长),),模数也与零等值。模数也与零等值。 从这里可以得到一个启示,就是从这里可以得到一个启示,就是负数用补码表示时,可以把负数用补码表示时,可以把减法转化为加法减法转化为加法。 数的补码表示数的补码表示补码的定义补码的定义:1、定点小数、定点小数例如例如+0.1011,则,则补补0.1011;-0.1011,则
11、,则补补10+10.0000-0.1011 1.0101正数的补码就是本身正数的补码就是本身负数的补码需作运算负数的补码需作运算数的补码表示数的补码表示 x 1 x 0 2+x=2-|x| 0 x -1 (mod 2) 10.0000 - 0.1011 1.0101 根据补码定义,求负数的补码时需作一次减法运算,这显然是根据补码定义,求负数的补码时需作一次减法运算,这显然是不补码方法的初衷。后面将介绍反码表示法可以解决负数的求补不补码方法的初衷。后面将介绍反码表示法可以解决负数的求补问题。问题。2、定点整数、定点整数例:已知例:已知x=+10111,y=-11011, 求求 x补、补、y补补
12、(n=5)按定义:按定义:x补补 =010111 y补补 =25+1+y=1000000-11011=100101数的补码表示数的补码表示 x 2n x 0 2n+1+x= 2n+1 -|x| 0 x -2n(mod 2n+1) 1000000- 11011 100101注:上式注:上式机器数机器数的位数为的位数为n+1n+1数的补码表示数的补码表示注注:0 0的补码只有一种形式的补码只有一种形式 对于对于定点小数定点小数: : 0补补0补补0.0000 对于对于定点整数定点整数: : 0补补0补补00000 . 因此,补码的表示范围相对于原码、反码来因此,补码的表示范围相对于原码、反码来讲多
13、一种,讲多一种,定点小数定点小数可以表示可以表示-1,n+1位位定点整定点整数数可以表示可以表示-2n。3. 反码表示法反码表示法二进制数求反二进制数求反:就是二进制的各位数码:就是二进制的各位数码0 0变为变为1 1,1 1变为变为0 0。即:若即:若 x xi i =0=0,则,则 =1=1。 若若 x xi i =1=1,则,则 =0.=0.对对定点小数定点小数,反码的定义参见书(反码的定义参见书(2.11)2.11)式。式。ix数的反码表示数的反码表示ix正数的反码就是本身正数的反码就是本身负数的反码则是符号负数的反码则是符号位为位为1,数值位求反。,数值位求反。 x 1 x 0( 2
14、- 2-n ) +x= ( 2- 2-n )_|x| 0 x -1 (2.11)由式(由式(2.112.11)可以得出:)可以得出:x反反+|x|=1.1111=10.00-0.001 = 2- 2-n 得出:得出: 反反(2(22 2n n) ) 0 x -1数的反码表示数的反码表示比较反码与补码的公式比较反码与补码的公式 反反(2(22 2n n) ) 补补2 2可得到:可得到:补补反反2n由此可知一个由反码求补码的重要公式,即:由此可知一个由反码求补码的重要公式,即: 一个一个负数负数的补码,可以通过将该数的补码,可以通过将该数 符号位置符号位置1 1,其余取反,然后在最末位(其余取反,
15、然后在最末位(2 2-n -n )上加)上加1 1 的方法直的方法直接获得。接获得。数的补码与反码关系数的补码与反码关系例:已知例:已知x=+0.1011,y=-0.1101, 求求 x补、补、y补补按定义:按定义:x补补 =0.1011(注:注:正数的补码就是该数本身正数的补码就是该数本身) y补补 =1.0010+0.0001=1.0011y反反2-n注意到:注意到:1、0的反码不唯一:的反码不唯一:0反反0.000; 0反反1.1112、比较反码与补码的公式:比较反码与补码的公式:反反(22n) 补补2可知:补码与反码的关系为:可知:补码与反码的关系为:补补反反2n数的补码与反码关系数的
16、补码与反码关系 上面的公式告诉我们,若要一个负数变补码上面的公式告诉我们,若要一个负数变补码, ,其方法是符号位置其方法是符号位置1,1,其余各位其余各位0 0变变1,11,1变变0,0,然后然后在最末位在最末位(2(2-n)-n)上加上加1 1。对定点整数,反码表示的定义为:对定点整数,反码表示的定义为: 也可以用也可以用同样同样的方法得出定点整数的补码与反码的方法得出定点整数的补码与反码的关系,找出利用反码求定点整数补码的方法。的关系,找出利用反码求定点整数补码的方法。 x 2n x 0 (2n+1-1)+x 0 x -2n (2.13)_数的补码与反码关系数的补码与反码关系 求一个数的补
17、码的另一种有效的转换方求一个数的补码的另一种有效的转换方法:法: 对于对于负数负数,将原码的符号位不变(或支,将原码的符号位不变(或支将真值的符号位至将真值的符号位至1 1),数值部分由低位向高),数值部分由低位向高位转换,对开始遇到的位转换,对开始遇到的0 0和第一个和第一个1 1取其原码,取其原码,以后的各位均取反。以后的各位均取反。 例:例: y=-0.110100, 求求 y补补 解:解:y补补=1.001 100保持不变保持不变逐位取反逐位取反y反反=1.001011y补补=1.001011+0.000001 =1.001100 数的补码与反码关系数的补码与反码关系4.移码表示法移码
18、表示法 在计算机中,移码通常用于表示浮点在计算机中,移码通常用于表示浮点数的阶码。由于阶码一般取整数,所以数的阶码。由于阶码一般取整数,所以移码通常只用于移码通常只用于整数整数的表示。的表示。对定点整数对定点整数, ,移码的定义是:移码的定义是: 移移2 2n n2 2n n2 2n n (n n为移码数值部分的位数为移码数值部分的位数)移码的表示方法移码的表示方法例例:若阶码:若阶码数值数值部分为部分为5 5位位, ,以以表示真值,则表示真值,则 移移2 25 5 2 25 5 2 25 5 又例又例: 当正数当正数10101 10101 时时, 移移1,101011,10101 当负数当负
19、数10101 10101 时时, 移移2 25 52 25 510101101010,010110,01011。注意到注意到: 移码中的移码中的逗号逗号不是小数点不是小数点, ,而是表示左边一而是表示左边一位是符号位。显然位是符号位。显然, ,移码中符号位移码中符号位0 0表示的规律与表示的规律与原码、补码、反码相反。移码的表示范围和补码一原码、补码、反码相反。移码的表示范围和补码一致,致,0 0只有一种表示方式,只是符号位正好相反。只有一种表示方式,只是符号位正好相反。移码的表示方法移码的表示方法机器码表示法小结:在数据的四种机器表示法中,在数据的四种机器表示法中,正数的原码、反码、补码等于
20、真值,只有负数才分正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法。别有不同的表示方法。补码和移码的补码和移码的0 0只有一种表示只有一种表示方法,因此其表示范围相对于原码和反码多一种,方法,因此其表示范围相对于原码和反码多一种,定点小数可表示定点小数可表示-1-1(移码没有小数形式),正数可(移码没有小数形式),正数可表示表示-2-2n n。移码表示法主要用于表示浮点数的阶码,可以直接移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反。比较大小。表示范围和补码相同,只有最高位相反。机器码表示法小结机器码表示法小结由于补码表示对加减法运算十分
21、方便,因此目前机由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中数用补码器中广泛采用补码表示法。在这类机器中数用补码表示,补码存储,补码运算。(也有些机器,数用表示,补码存储,补码运算。(也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算,在做乘除法时用原码器在做加减法时用补码运算,在做乘除法时用原码运算)运算)机器码表示法小结机器码表示法小结 例例3 3 以定点整数为例以定点整数为例, ,用数轴形式说明原码、反码、补码表示用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。范
22、围和可能的数码组合情况。 解解:原码、反码、补码表示分别示于下图。与原码、反码不同原码、反码、补码表示分别示于下图。与原码、反码不同, ,在补码表示中在补码表示中“0”0”只有一种形式只有一种形式, ,且用补码表示负数时范围可到且用补码表示负数时范围可到2 2n n 。机器码表示法小结机器码表示法小结 例例44将十进制真值将十进制真值( (127,127,1,0,1,0,1,1,127)127)列表表示成二进制列表表示成二进制数及原码、反码、补码、移码值。数及原码、反码、补码、移码值。 解解:二进制真值及其诸码值列于下表二进制真值及其诸码值列于下表, ,其中其中0 0在在 原原 反反中有中有两
23、种表示。由表中数据可知两种表示。由表中数据可知, ,补码值与移码值差别仅在于符号位不补码值与移码值差别仅在于符号位不同。同。机器码表示法小结机器码表示法小结 例例55 设机器字长设机器字长1616位位, ,定点表示定点表示, ,尾数尾数1515位位, ,数符数符1 1位位, ,问:问:(1)(1)定点原码整数表示时定点原码整数表示时, ,最大正数是多少最大正数是多少? ?最小负数是多少最小负数是多少? ?(2)(2)定点原码小数表示时定点原码小数表示时, ,最大正数是多少最大正数是多少? ?最小负数是多少最小负数是多少? ? 解解:(1) (1) 定点原码整数定点原码整数表示表示最大正数值最大
24、正数值 (2(215151)1)1010( (32767)32767)10 10 =0 =0 111111111111111111111111111111 最小负数值最小负数值(2(215151)1)1010( (32767)32767)10 10 =1 =1 111111111111111111111111111111 (15个个1)机器码表示法小结机器码表示法小结(2) (2) 定点原码小数定点原码小数表示表示 最大正数值最大正数值(1(12 21515) )1010( (0.111.11)0.111.11)2 2 最小负数值最小负数值(1(12 21515) )1010( (0.111.
25、11)0.111.11)2 2 例例66假设由假设由S,E,MS,E,M三个域组成的一个三个域组成的一个3232位二进制字所表示的非零位二进制字所表示的非零规格化浮点数规格化浮点数, ,真值表示为:真值表示为: (1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?负数是多少?解解: (1)最大正数最大正数11111111111111111111111111111110 1(12-23) 2127(2)最小正数最小正数 00000000000000000000000000000000 1.0 21
26、28机器码表示法小结机器码表示法小结(4)(4)最大负数最大负数 00000000000000000000000000000000 1.0 2128 11111111111111111111111111111111 1(1223) 2127 (3)最小负数最小负数机器码表示法小结机器码表示法小结2.1.3 字符与字符串的表示方法字符与字符串的表示方法1.1.字符的表示方法字符的表示方法 目前国际上普遍采用的字符系统是七单位的目前国际上普遍采用的字符系统是七单位的ASCIIASCII码码( (美国国家信息交换标准字符码美国国家信息交换标准字符码),),它包括它包括1010个十进个十进制数码制数码
27、,26,26个英文字母和一定数量的专用符号个英文字母和一定数量的专用符号, ,如如$,%,$,%, ,等,共等,共128128个元素个元素, ,因此二进制编码需因此二进制编码需7 7位位, ,加一加一位偶校验位位偶校验位, ,共共8 8位一个字节。位一个字节。 ASCIIASCII码规定码规定8 8个二进制位的最高一位为个二进制位的最高一位为0 0,余下的,余下的7 7位可以给出位可以给出128128个编码个编码, ,表示表示128128个不同的字符。个不同的字符。字符和字符串的表示方法字符和字符串的表示方法表表2.1 ASCII字符编码表字符编码表0000010100111001011101
28、110000NULDELSP0Pp0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111DELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?O_oDEL0-3位位4-6位位2. 字符串字符串字符串字符串:是指连续的一串字符:是指连续的一串字符,通常方式下通常方式下,它们依次占用主存中它们依次占用主存中连续的多个字节连续
29、的多个字节,每个字节存一个字符。每个字节存一个字符。 例例 将字符串:将字符串:IFABTHENREAD(C)从高位字节到低位字节依次存在主存中。从高位字节到低位字节依次存在主存中。解解:设:主存单元长度由设:主存单元长度由4个字节组成。每个字节中存放相应字符的个字节组成。每个字节中存放相应字符的ASCII值,文字表达式中的空格值,文字表达式中的空格“”在主存中也占一个字节的位在主存中也占一个字节的位置。置。 因而每个字节分别存放十进制的因而每个字节分别存放十进制的73、70、32、65、62、66、32、84、72、69、78、32、82、69、65、68、40、67、41、32。 字符和字
30、符串的表示方法字符和字符串的表示方法IF空AB空THEN空READ(C)空主存各字节单元内容主存各字节单元内容字符和字符串的表示方法字符和字符串的表示方法2.1.4 2.1.4 汉字的表示方法汉字的表示方法1. 1. 汉字的输入编码汉字的输入编码包括:包括:数字码数字码、拼音码拼音码和和字形码字形码数字码:数字码:常用的是国标区位码常用的是国标区位码,用数字串代表一个汉字输入。区位码是用数字串代表一个汉字输入。区位码是将国家标准局公布的将国家标准局公布的6763个两级汉字分为个两级汉字分为94个个区区,每个区分每个区分94位位,实际上实际上把汉字表示成二维数组把汉字表示成二维数组,每个汉字在数
31、组中的下标就是每个汉字在数组中的下标就是区位码区位码。区码和。区码和位码各两位十进制数字位码各两位十进制数字,因此输入一个汉字需按键因此输入一个汉字需按键四次四次。 数字编码输入的数字编码输入的优点优点是无重码是无重码,且输入码与内部编码的转换比较方便且输入码与内部编码的转换比较方便,。缺点缺点是代码难以记忆。是代码难以记忆。拼音码:拼音码:拼音码是以汉字拼音为基础的输入方法。使用拼音码是以汉字拼音为基础的输入方法。使用简单方便简单方便,但,但汉字同音字太多汉字同音字太多,输入输入重码率很高重码率很高,同音字选择影响了输入速度。同音字选择影响了输入速度。汉字的表示方法汉字的表示方法(汉字的输入
32、编码)(汉字的输入编码)字形码:字形码:字形编码是用汉字的形状来进行的编码(例:五笔字字形编码是用汉字的形状来进行的编码(例:五笔字型)。把汉字的笔划部件用字母或数字进行编码型)。把汉字的笔划部件用字母或数字进行编码,按笔划的顺序按笔划的顺序依次输入依次输入,就能表示一个汉字。就能表示一个汉字。 为了加快输入速度为了加快输入速度,在上述方法基础上在上述方法基础上,发展了词组输入发展了词组输入联想联想输入等多种快速输入方法。但是都利用了键盘进行输入等多种快速输入方法。但是都利用了键盘进行“手动手动”输入。输入。理想的输入方式是利用语音或图象识别技术理想的输入方式是利用语音或图象识别技术“自动自动
33、”将拼音或文将拼音或文本输入到计算机内本输入到计算机内,使计算机能认识汉字使计算机能认识汉字,听懂汉语听懂汉语,并将其自动转并将其自动转换为机内代码表示。目前这种理想已经成为现实。换为机内代码表示。目前这种理想已经成为现实。 汉字的表示方法汉字的表示方法(汉字的输入编码)(汉字的输入编码)2 .2 .汉字内码汉字内码 汉字内码汉字内码是用于汉字信息的存储、交换、检索等操是用于汉字信息的存储、交换、检索等操作的机内代码作的机内代码, ,一般采用两个字节表示。英文字符的机一般采用两个字节表示。英文字符的机内代码是七位的内代码是七位的ASCIIASCII码码, ,当用一个字节表示时当用一个字节表示时
34、, ,最高位最高位为为“0”0”。为了与英文字符能相互区别。为了与英文字符能相互区别, ,汉字机内代码汉字机内代码中两个字节的最高位均规定为中两个字节的最高位均规定为“1”1”。注意注意:有些系统中字节的最高位用于奇偶校验位,这种有些系统中字节的最高位用于奇偶校验位,这种情况下用三个字节表示汉字内码。情况下用三个字节表示汉字内码。汉字的表示方法汉字的表示方法(汉字的内码)(汉字的内码)3. 3. 汉字字模码汉字字模码字模码字模码是用点阵表示的汉字字形代码是用点阵表示的汉字字形代码, ,它是汉字的输出形式它是汉字的输出形式。例如:例如:字模码字模码汉字的表示方法汉字的表示方法(汉字字模码)(汉字
35、字模码)汉字的字模码为:汉字的字模码为:16位位 16位位=32字节字节注意到注意到:字模点阵只能用来构成字模点阵只能用来构成汉字库汉字库, ,而不能用于机内而不能用于机内存储。字库中存储了每个汉字的点阵代码,用于存储。字库中存储了每个汉字的点阵代码,用于汉字的显示输出或打印输出。当显示输出或打印汉字的显示输出或打印输出。当显示输出或打印输出时才检索字库,输出字模点阵,得到字形。输出时才检索字库,输出字模点阵,得到字形。1.1.汉字的汉字的输入编码输入编码、汉字内码汉字内码、字模码字模码是计算机中是计算机中用于用于输入输入、内部处理内部处理、输出三种输出三种不同用途的编码不同用途的编码, ,不
36、要混为一谈不要混为一谈。汉字的表示方法汉字的表示方法(汉字字模码)(汉字字模码) 各种因素常常导致计算机在处理信息过程中出现错误。为了防止错误,可将信号采用专门的逻辑线路进行编码以检测错误,甚至校正错误。2.1.5 2.1.5 校验码校验码最简单且应用广泛的检错码方法是奇偶校验法,即:采用一最简单且应用广泛的检错码方法是奇偶校验法,即:采用一位校验位的位校验位的奇校验奇校验或或偶校验的方法偶校验的方法。设设(01n1)是一个是一个n位字位字,则则奇校验位奇校验位定义为:定义为:C0 1 n1 式中式中 代表按位加代表按位加, 只有当中包含有只有当中包含有奇数个奇数个1时时,才使才使 C1,即即
37、 C0。同理同理,偶校验位定义为偶校验位定义为C0 1 n1 即中包含偶数个即中包含偶数个1时时,才使才使C0。效验码效验码 假设一个字假设一个字从部件从部件 A A 传送到部件传送到部件 B B。在源点。在源点 A,A,校验位校验位C C可可用上面公式算出来用上面公式算出来, ,并合在一起将并合在一起将( (0 011n n1C)1C)送到送到B B,采用偶效验。假设在采用偶效验。假设在B B点真正接收到的是点真正接收到的是( ( 0 0 1 1 n n1 1C C ),),然后计算:然后计算: F F 0 0 1 1 n n1 1C C 若若F F1,1,意味着收到的信息有错意味着收到的信
38、息有错, ,若若F F0,0,表明表明字传送正确。字传送正确。奇偶校验可提供奇数个错误检测奇偶校验可提供奇数个错误检测, ,但无法检测偶数个错误但无法检测偶数个错误, ,更无更无法识别错误信息的位置。(循环校验码法识别错误信息的位置。(循环校验码CRCCRC可解决此问题)可解决此问题)效验码效验码例7 见书P30数据数据偶校验编码偶校验编码奇校验编码奇校验编码1 0 1 0 1 0 1 01 0 1 0 1 0 1 00 1 0 1 0 1 0 00 1 0 1 0 1 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 1 1 1 1 1 1 10 1 1 1 1 1 1
39、11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 - -0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 - -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - -0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 - -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - -1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 - -0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 - -0 0 0 0 0 0 0 0 0 0 0 0
40、0 0 0 0 - -0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 - -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - -效验码效验码解假如校验位后传送的数码为:数据数据偶校验编码偶校验编码奇校验编码奇校验编码1 0 1 0 1 0 1 01 0 1 0 1 0 1 00 1 0 1 0 1 0 00 1 0 1 0 1 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 1 1 1 1 1 1 10 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1
41、 0 1 0 0 00 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 01 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 10 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 10 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 01 1 1 1 1
42、1 1 1 1 1 1 1 1 1 1 1 1 1效验码效验码2.2 定点加法减法运算定点加法减法运算 2.2.1 补码加法补码加法2.2.2 补码减法补码减法2.2.3 溢出概念与检验方法溢出概念与检验方法2.2.4 基本的二进制加法、减法器基本的二进制加法、减法器2.2.5 十进制加法器十进制加法器定点加减法运算定点加减法运算2.2.1 补码加法补码加法补码加法的公式是:补码加法的公式是:补补补补补补 (mod 2) 现分四种情况来证明。假设采用定点小数表示现分四种情况来证明。假设采用定点小数表示, ,因此证明因此证明的先决条件是:的先决条件是:1, 1, 1, 1, 1 1。(1)0,0
43、,则则0。 相加两数都是正数相加两数都是正数, ,故其和也一定是正数。正数的补码和原故其和也一定是正数。正数的补码和原码是一样的码是一样的, ,可得:可得:补补补补补补(mod 2) 补码的加法补码的加法(2)(2)0,0,0,0,则则00或或000时时,2 ,2 ( () 2,) 2,进位进位2 2必丢失必丢失, ,又因又因( ()0)0,所以:,所以: 补补 补补 补补(mod 2)(mod 2)当当00时时,2 ,2 ( () 2,) 2,又因又因( ()0)0,所,所以:以: 补补 补补2 2( () ) 补补(mod 2)(mod 2)补码的加法补码的加法(3)(3)0,0,0,则则
44、00或或 00。这种情况和第这种情况和第2 2种情况一样种情况一样, ,把把和和的位置对调即得证。的位置对调即得证。 (4)(4)0,0,0,0,则则00。 相加两数都是负数相加两数都是负数, ,则其和也一定是负数。则其和也一定是负数。 补补2 2, , 补补2 2 补补 补补2 22 22 2(2(2) )上式右边分为上式右边分为”2”2”和和(2(2) )两部分两部分. .既然既然( () )是是负数负数, ,而其绝对值又小于而其绝对值又小于1,1,那么那么(2(2) )就一定是小于就一定是小于2 2而大于而大于1 1的数的数, ,进位进位”2”2”必丢失必丢失. .又因又因( ()0,
45、)0所以:所以: 0.1101补码的减法补码的减法又例又例 +0.0110,+0.1110,求。求。解解:补补0.0110 补补0.1110 补补1.0010 补补 0.0110补补 1.0010 补补 1.1000 0所以:所以: -0.1000补码的减法补码的减法2.2.3 溢出概念与检测方法溢出概念与检测方法 以定点小数为例以定点小数为例: 在定点小数机器中在定点小数机器中, ,数的表示范围为数的表示范围为| |1. | x 0 4+x=4-|x| 0 x -2 (2.22)溢出概念与检测方法溢出概念与检测方法或用同余式表示:或用同余式表示:补补4(mod 4)下式也同样成立:下式也同样
46、成立: 补补 补补 补补(mod 4) 1. 两个符号位都看作数码一样参加运算两个符号位都看作数码一样参加运算 2.2.两数进行以两数进行以4位模的加法位模的加法, ,即最高符号位上产生的进即最高符号位上产生的进位要丢掉。位要丢掉。 采用变形补码后,如果两个数相加后,其结果的采用变形补码后,如果两个数相加后,其结果的符号位出现符号位出现“01”或或“10”两种组合时两种组合时, ,表示发生溢出。表示发生溢出。这这是因为两个绝对值小于是因为两个绝对值小于1的数相加的数相加, ,其结果不会大于或其结果不会大于或等于等于2。所以,最高符号位所表示的是。所以,最高符号位所表示的是结果的正确符号结果的正
47、确符号。溢出概念与检测方法溢出概念与检测方法为了得到两数变形补码之和等于两数之和的变形补码为了得到两数变形补码之和等于两数之和的变形补码, ,样必须:样必须: 例例1414 0.1100.1100, 0, 0.1000,0.1000,求求。溢出概念与检测方法溢出概念与检测方法 解解 : 补补00.1100,补补00.1000 补补 00.1100 补补 00.1000 01.0100 两个符号位出现两个符号位出现“01”01”, ,表示已溢出表示已溢出, ,即结果即结果大于大于1 1。上溢上溢 又又例例 0.1100.1100, 0, 0.0001,0.0001,求求。溢出概念与检测方法溢出概
48、念与检测方法 解解 : 补补00.1100,补补00.1000 补补 00.1100 补补 00.0001 00.1101 两个符号位两个符号位 =“00”,=“00”,表示表示无溢出无溢出。 例例1515 0.1100, 0.1100, -0.1000,-0.1000,求求。溢出概念与检测方法溢出概念与检测方法 解解 : 补补11.0100,补补11.1000 补补11.0100补补11.1000 1010.1100.1100 两个符号位出现两个符号位出现“10”, ,表示已溢出表示已溢出, ,即结果即结果小于小于1。下溢下溢 又例又例 0.0100, 0.0100, -0.1000,-0.
49、1000,求求。溢出概念与检测方法溢出概念与检测方法 解解 : 补补11.1100,补补11.1000 补补11.1100补补11.1000 1111.0100.0100 两个符号位出现两个符号位出现“11”, ,表示表示无溢出无溢出。溢出概念与检测方法溢出概念与检测方法由此可以得出如下结论由此可以得出如下结论:1.1. 当以模当以模4 4补码运算补码运算, ,运算结果的运算结果的二符号位相异二符号位相异时时, ,表示表示溢出溢出;相同相同时时, ,表示表示未溢出未溢出。故溢出逻辑表故溢出逻辑表达式为达式为 V VS Sf f1 1S Sf f2 2, ,其中其中S Sf f1 1和和S Sf
50、 f2 2分别为最高符号分别为最高符号位和第二符号位。此逻辑表达式可用位和第二符号位。此逻辑表达式可用异或门异或门实现。实现。2. 2. 模模4 4补码相加的结果补码相加的结果, ,不论溢出与否不论溢出与否, ,最高符号位最高符号位始终指示正确的符号。始终指示正确的符号。 溢出概念与检测方法溢出概念与检测方法第二种溢出检测方法第二种溢出检测方法:采用采用“单符号位法单符号位法”。 从例从例1 1和和例例2 2中看到中看到:(1).:(1).当最高有效位产生进位而当最高有效位产生进位而符号位无进位时符号位无进位时, ,产生产生上溢上溢;(2).(2).当最高有效位无进当最高有效位无进位而符号位有
51、进位时位而符号位有进位时, ,产生产生下溢下溢。 故:故:溢出逻辑表达式为溢出逻辑表达式为: V VC Cr rC Co o其中其中: : C Cf f为符号位产生的进位为符号位产生的进位, ,C Co o为最高有效位产生的为最高有效位产生的进位。(进位。(显然:此逻辑关系可用异或门方便地实现显然:此逻辑关系可用异或门方便地实现)。)。 在定点机中,当运算结果发生溢出时在定点机中,当运算结果发生溢出时, ,机器通过逻机器通过逻辑电路自动检查出溢出故障辑电路自动检查出溢出故障, ,并进行中断处理并进行中断处理。 二进制加法二进制加法/减法器减法器2.2.4 2.2.4 基本的二进制加法基本的二进
52、制加法/ /减法器减法器 根据表根据表2.22.2所示的真值表所示的真值表, ,三个输入端和两个输出端可按三个输入端和两个输出端可按如下逻辑方程进行联系:如下逻辑方程进行联系: S Si iA Ai iBBi iCCi i C Ci i1 1A Ai iB Bi iB Bi iC Ci iC Ci iA Ai i1111110011101010100110110010100110000000C Ci i1 1S Si iC Ci iB Bi iA Ai i输出输入表表2.2 一位全加器真值表一位全加器真值表(2.23)二进制加法二进制加法/减法器减法器按表达式按表达式(2.23)组成的一位全加
53、器(组成的一位全加器(FA)示意图)示意图2.2(b)对一位全加器对一位全加器(FA)来说来说,Si的时间延迟为的时间延迟为6T(每级异或门延迟每级异或门延迟3T),Ci1的时间延迟为的时间延迟为5T,其中其中T被定义为相应于单级逻辑被定义为相应于单级逻辑电路的单位门延迟。电路的单位门延迟。T通常通常采用一个采用一个“与非与非”门或一个门或一个“或非或非”门的时间延迟来门的时间延迟来作为度量单位。作为度量单位。3T+3T3T+T+T二进制加法二进制加法/减法器减法器二进制加法二进制加法/减法器减法器延迟时间延迟时间t ta a为为: : 2T2T延迟时间延迟时间t ta a为为: : 3T3T
54、考虑溢出检测时考虑溢出检测时,延迟时间延迟时间t ta a为为: : t ta ann2 2T T9 9T T (2(2n n9)9)T T当不考虑溢出检测时当不考虑溢出检测时,有:,有: t ta a( (n-1)n-1)2 2T T9 9T T十进制加法器十进制加法器2.2.5 十进制加法器十进制加法器 十进制加法器可由十进制加法器可由BCD码码( (二二十进制码十进制码)来设来设计计,它可以在二进制加法器的基础上加上适当的它可以在二进制加法器的基础上加上适当的“校正校正”逻辑来实现逻辑来实现,该校正逻辑可将二进制的该校正逻辑可将二进制的“和和”改变成所要求的十进制格式。改变成所要求的十进
55、制格式。 四位二进制数表示十进制数四位二进制数表示十进制数的一位(的一位(0-90-9),即数据范),即数据范围:围1001十进制加法器十进制加法器例:设例:设 Xi= 0110= (6)10 Yi= 0111= (7)10 则:则:Si = Xi+ Yi= 0110+0111 = 1101= (13)10 十位数:十位数:1 个位数:个位数: 3 对对Si进行进行“加加6校正校正”后:后: Si = Si+6=1101+0110=1 0011 13 Si9的情况的情况:Si = 1010, 1011,1100,1101,1110,1111. 当当Si9时,要求:
56、时,要求: (1). 产生向高位的进位信号产生向高位的进位信号Ci+1 ; (2). 对对Si进行进行“+6”校正,得出本位的十进制数值。校正,得出本位的十进制数值。实现:实现:(6)10 +(7)10 进位进位十进制加法器十进制加法器该位的和该位的和十进制加法的校正十进制加法的校正十进制加法器十进制加法器设设Si代表这样得到的代表这样得到的4位二进制数和位二进制数和,Ci1为输出为输出进位进位,而而Si代表正确的代表正确的BCD和和,Ci1代表正确的进位代表正确的进位,那么:那么: 当当iiCi10时时, SiSi 当当XiYiCi10时时, SiSi6显然显然,对于十进制加对于十进制加法来
57、说,法来说,当当Ci11或或Si10时时,应当有:输出进位应当有:输出进位Ci11。十进制加法器十进制加法器和大于和大于9?和有进位和有进位校正:校正:Ci10时:时:+ +0; Ci11时:时:+ +6;2.3 定点乘法运算定点乘法运算 2.3.1 原码并行乘法原码并行乘法2.3.2 补码并行乘法补码并行乘法定点乘法运算定点乘法运算2.3.1 原码乘法原码乘法1.1.人工算法与机器算法的同异性人工算法与机器算法的同异性 在定点计算机中在定点计算机中,两个原码表示的数相乘的运算规则是两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到乘积的符号位由两数的符号位按异或运算得
58、到,而乘积的数而乘积的数值部分则是两个正数相乘之积值部分则是两个正数相乘之积。 设设n位被乘数和乘数用定点小数表示位被乘数和乘数用定点小数表示(定点整数也同样适用定点整数也同样适用)被乘数被乘数 原原f .n110乘数乘数 原原f .n110 则乘积则乘积: 原原(ff)(0.n110)(0.n110) (2.26) 式中式中,f为被乘数符号为被乘数符号,f为乘数符号。为乘数符号。 原码乘法运算原码乘法运算乘积符号的运算法则是:乘积符号的运算法则是:同号相乘为正同号相乘为正, ,异号异号相乘为负。由于被乘数和乘数的符号组合只相乘为负。由于被乘数和乘数的符号组合只有四种情况有四种情况( (f f
59、f f00,01,10,11),00,01,10,11),因此积因此积的符号可按的符号可按“异或异或”( (按位加按位加) )运算得到。运算得到。数值部分的运算方法与普通的十进制小数数值部分的运算方法与普通的十进制小数乘法类似乘法类似, ,不过对于用二进制表达式的数来不过对于用二进制表达式的数来说说, ,其乘法规则更为简单一些。其乘法规则更为简单一些。设设0.1101,0.1101,0.1011.0.1011.让我们先用习让我们先用习惯方法求其乘积惯方法求其乘积, ,观察其过程观察其过程: :原码乘法运算原码乘法运算 0. 1 1 0 1 (x)X 0. 1 0 1 1 (y) 1 1 0 1
60、 1 1 0 1 0 0 0 0+ 1 1 0 1 0. 1 0 0 0 1 1 1 1 (z) 运算的过程与十进制乘法相似运算的过程与十进制乘法相似: : 从乘数从乘数的最低的最低位开始位开始, ,若这一位为若这一位为“1”,1”,则将被乘数则将被乘数写下;若写下;若这一位为这一位为“0”,0”,则写下全则写下全0 0。然后再逐次完成对乘。然后再逐次完成对乘数各高位的乘法运算数各高位的乘法运算, ,其规则同上。不过高一位其规则同上。不过高一位乘数的权比低一位乘数的权大一级(乘数的权比低一位乘数的权大一级(2 21 1=2=2),因此),因此被乘数被乘数要左移一位。以此类推要左移一位。以此类推, ,直
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度整栋仓库出租承包及仓储服务合同4篇
- 2024版技术开发与转让合同具体内容
- 2025年度无人机航空拍摄服务合同3篇
- 2024版农业蔬菜大棚承包合同
- 2025年度体育健身充值卡销售与合作推广合同4篇
- 2025年度水电工程招投标代理服务承包合同集锦4篇
- 2025年度新型建筑材料代售合同协议范本4篇
- 2025年度商业地产资产保值增值顾问服务合同4篇
- 2025年度新能源企业代理记账与绿色金融合作合同4篇
- 2025年度智能窗帘系统承包安装与维护合同范本4篇
- 金蓉颗粒-临床用药解读
- 社区健康服务与管理教案
- 2023-2024年家政服务员职业技能培训考试题库(含答案)
- 2023年(中级)电工职业技能鉴定考试题库(必刷500题)
- 藏历新年文化活动的工作方案
- 果酒酿造完整
- 第4章-理想气体的热力过程
- 生涯发展展示
- 法治副校长专题培训课件
- 手术室应对突发事件、批量伤员应急预案及处理流程
- 动机-行为背后的原因课件
评论
0/150
提交评论