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 12 2n n,则原码的定义是,则原码的定义是: :对于对于定点整数定点整数,其原码形式为:,其原码形式为: 原原= =0 01 12 2n n, , 数的原码表示数的原码表示 2n0 2n2n| 02n (2.8)符号符号数值数值
7、例如例如,+11001,则,则原原011001-10101,则,则 原原110101数的原码表示数的原码表示注意到注意到:“+0+0”、“-0-0” 原码在机器中有两种形式:原码在机器中有两种形式:对于对于定点小数定点小数:+0+0原原 = =0 0. .0000000 -00 -0原原 = =1 1. .0000000 0对于对于定点整数定点整数:+0+0原原 = =0 00000000 0. . -0 -0原原 = =1 10000000 0. . 对于对于定点小数定点小数,其真值与原码之间的转换,其真值与原码之间的转换一般符合下面的规律:一般符合下面的规律: x=+0.12n 原原0.1
8、2n x=-0.12n 原原1.12n 对于对于定点整数定点整数,其真值与原码之间的转换,其真值与原码之间的转换一般一般符合符合下面的规律:下面的规律: x=+ 12n 原原012n . x=- 12n 原原112n . 原码表示法的主要特点是原码表示法的主要特点是简单、易懂简单、易懂,但它的最大缺,但它的最大缺点是:由于数值部分采用绝对值表示,因而使得加减法点是:由于数值部分采用绝对值表示,因而使得加减法运算比较复杂,而加减法运算正是计算机中最常使用的运算比较复杂,而加减法运算正是计算机中最常使用的运算。运算。 所以,必须探讨解决方法所以,必须探讨解决方法补码补码则正是一种解则正是一种解决方
9、法。决方法。数的原码表示数的原码表示2.2.补码表示法补码表示法 补码的概念补码的概念(以钟表对时为例)以钟表对时为例) 假设现在的标准时间为假设现在的标准时间为4 4点正;点正; 而有一只表已经而有一只表已经7 7点了,为点了,为了校准时间,可以采用两种方法:一是将时针退了校准时间,可以采用两种方法:一是将时针退 3 3 格格(7-3=4)(7-3=4);另一方法是将时针向前拨另一方法是将时针向前拨9 9格(格(7+9=16-47+9=16-4)。)。显然:这两种方法都能对准到显然:这两种方法都能对准到4 4点,由此可以看出,减点,由此可以看出,减3 3和加和加9 9是等价的。所以称:当模数
10、是等价的。所以称:当模数Mod=12Mod=12时,时,9 9是是(-3)(-3)补码。补码。用数学公式表示:用数学公式表示:-3-3+9+9(mod12mod12)“模模”表示被丢掉的数值。上式在数学上称为同余式。表示被丢掉的数值。上式在数学上称为同余式。 设某数为设某数为x,当,当Mod=12时,时,x-3=x+9、x+7=x-5 都是等价的。都是等价的。从这里可以得到一个启示,就是从这里可以得到一个启示,就是当当负数用补码表示时,可以把负数用补码表示时,可以把减法转化为加法减法转化为加法。 数的补码表示数的补码表示补码的定义补码的定义:1、定点小数、定点小数例如例如+0.1011,则,则
11、补补0.1011;-0.1011,则,则补补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= +101
12、11,y= -11011, 求求 x补、补、y补补 (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正数的反码就是本身正数的反码就是本身负数的反码则是:负数的反码则是:符号位为符号
14、位为1,数值位,数值位 求反。求反。 x 1 x 0( 2- 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 得出:得出: 反反(22n) 0 x -1数的反码表示数的反码表示比较反码与补码的公式比较反码与补码的公式 反反(2(22 2n n) ) 补补2 2可得到:可得到:补补反反2n由此可知一个由反码求补码的重要公式,即:由此可知一个由反码求补码的重要公式,即: 一个一个负数负数的补码,可以通过将该数:的补码,可以通过将该数:符号位置符号位
15、置1 1,其余取反,然后在最末位(其余取反,然后在最末位(2-n )上加)上加1 1 的方法直的方法直接获得。接获得。数的补码与反码关系数的补码与反码关系例:已知例:已知x=+0.1011,y=-0.1101, 求求 x补、补、y补补按定义:按定义:x补补 =0.1011(注:注:正数的补码就是该数本身正数的补码就是该数本身) y补补 =1.0010+0.0001=1.0011y反反2-n注意到注意到: 0的反码不唯一的反码不唯一即:即:0反反0.000; 0反反1.111数的补码与反码关系数的补码与反码关系对定点整数,反码表示的定义为:对定点整数,反码表示的定义为: 也可以用也可以用同样同样
16、的方法得出定点整数的补码与反码的方法得出定点整数的补码与反码的关系,找出利用反码求定点整数补码的方法。的关系,找出利用反码求定点整数补码的方法。 x 2n x 0 (2n+1-1)+x 0 x -2n (2.13)_数的补码与反码关系数的补码与反码关系 求一个负数的补码的另一种有效的转换求一个负数的补码的另一种有效的转换方法:方法: 对于对于负数负数,将原码的符号位不变(或直,将原码的符号位不变(或直接将符号位置接将符号位置1 1),数值部分由低位向高位转),数值部分由低位向高位转换,对开始遇到的换,对开始遇到的0 0和第一个和第一个1 1取其原值不变,取其原值不变,第一个第一个1 1以后的各
17、位均取反。以后的各位均取反。例:例: y=-0.110100, 求求 y补补 解:解:y补补=1.001 100保持不变保持不变逐位取反逐位取反y反反=1.001011y补补=1.001011+0.000001 =1.001100 数的补码与反码关系数的补码与反码关系4.移码表示法移码表示法 在计算机中,移码通常用于表示浮点在计算机中,移码通常用于表示浮点数的阶码。由于阶码一般取整数,所以数的阶码。由于阶码一般取整数,所以移码通常只用于移码通常只用于整数整数的表示。的表示。对定点整数对定点整数, ,移码的定义是:移码的定义是: 移移2 2n n2 2n n2 2n n (n n为移码数值部分的
18、位数为移码数值部分的位数)移码的表示方法移码的表示方法例例:若阶码:若阶码数值数值部分为部分为5 5位位, ,以以表示真值,则表示真值,则 移移25 25 25 又例又例: 当正数当正数10101 时时,移移1,10101 当负数当负数10101 时时, 移移2525101010,01011。注意到注意到: 移码中的移码中的逗号逗号不是小数点不是小数点, ,而是表示左边而是表示左边一位是符号位。显然一位是符号位。显然, ,移码中符号位移码中符号位0 0表示的规律表示的规律与原码、补码、反码相反。移码在数值上与补码一与原码、补码、反码相反。移码在数值上与补码一致,但是符号位与补码正好相反!致,但
19、是符号位与补码正好相反!移码的表示方法移码的表示方法机器码表示法小结机器码表示法小结:在数据的四种机器码表示法中:在数据的四种机器码表示法中:正数的原码、反码、补码等于真值,只有负数才分正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法。别有不同的表示方法。补码和移码的补码和移码的0 0只有一种表示只有一种表示方法,因此其表示范围相对于原码和反码多一种,方法,因此其表示范围相对于原码和反码多一种,定点小数可表示定点小数可表示-1-1(移码没有小数形式),正数可(移码没有小数形式),正数可表示表示-2-2n n。移码表示法主要用于表示浮点数的阶码,可以直接移码表示法主要用于表示浮点数
20、的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反。比较大小。表示范围和补码相同,只有最高位相反。机器码表示法小结机器码表示法小结由于补码表示对加减法运算十分方便,因此目前机由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中数用补码器中广泛采用补码表示法。在这类机器中数用补码表示,补码存储,补码运算。(也有些机器,数用表示,补码存储,补码运算。(也有些机器,数用原码进行存储和传送,运算时改用补码。还有些机原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算,在做乘除法时用原码器在做加减法时用补码运算,在做乘除法时用原码运算)运算)机器码表
21、示法小结机器码表示法小结 例例3 3 以定点整数为例以定点整数为例, ,用数轴形式说明原码、反码、补码表示用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。范围和可能的数码组合情况。 解解:原码、反码、补码表示分别示于下图。与原码、反码不同原码、反码、补码表示分别示于下图。与原码、反码不同, ,在补码表示中,在补码表示中,“0 0”只有一种形式只有一种形式, ,且用补码表示负数时范围可到且用补码表示负数时范围可到2 2n n 。机器码表示法小结机器码表示法小结 例例44将十进制真值将十进制真值(127、1、0、1、127) )列表表示成二列表表示成二进制数及原码、反码、补码、移码值。
22、进制数及原码、反码、补码、移码值。 解解:二进制真值及其诸码值列于下表二进制真值及其诸码值列于下表, ,其中其中0 0在在 原原 反反中有中有两种表示。由表中数据可知两种表示。由表中数据可知, ,补码值与移码值差别仅在于符号位不补码值与移码值差别仅在于符号位不同。同。机器码表示法小结机器码表示法小结 例例55 设机器字长设机器字长1616位位, ,定点表示定点表示, ,尾数尾数1515位位, ,数符数符1 1位位, ,问:问:(1)(1)定点原码整数表示时定点原码整数表示时, ,最大正数是多少最大正数是多少? ?最小负数是多少最小负数是多少? ?(2)(2)定点原码小数表示时定点原码小数表示时
23、, ,最大正数是多少最大正数是多少? ?最小负数是多少最小负数是多少? ? 解解:(1)(1)定点原码整数定点原码整数表示表示 最大正数值最大正数值=0 =0 111111111111111111111111111111 +(2+(215151)1)1010( (32767)32767)1010 最小负数值最小负数值=1 =1 111111111111111111111111111111 (2(215151)1)1010( (32767)32767)10 10 (15个个1)机器码表示法小结机器码表示法小结(2) (2) 定点原码小数定点原码小数表示表示 最大正数值最大正数值( (0.111.
24、11)0.111.11)(1(12 21515) )10 10 最小负数值最小负数值( (0.111.11)0.111.11)(1(12 21515) )1010 例例66假设由假设由S,E,MS,E,M三个域组成的一个三个域组成的一个3232位二进制字所表示的非零位二进制字所表示的非零规格化浮点数规格化浮点数, ,真值表示为:真值表示为: (1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?负数是多少?解解: (1)最大正数最大正数1111111111111111111111111111111
25、0 1(12-23) 2127(2)最小正数最小正数 00000000000000000000000000000000 1.0 2128机器码表示法小结机器码表示法小结(4)(4)最大负数最大负数 00000000000000000000000000000000 1.0 2128 11111111111111111111111111111111 1(1223) 2127 (3)最小负数最小负数机器码表示法小结机器码表示法小结2.1.3 字符与字符串的表示方法字符与字符串的表示方法1.1.字符的表示方法字符的表示方法 目前国际上普遍采用的字符系统是七单位的目前国际上普遍采用的字符系统是七单位的A
26、SCIIASCII码码( (美国国家信息交换标准字符码美国国家信息交换标准字符码),),它包括它包括1010个十进个十进制数码制数码,26,26个英文字母和一定数量的专用符号个英文字母和一定数量的专用符号, ,如如$,%,$,%, ,等,共等,共128128个元素个元素, ,因此二进制编码需因此二进制编码需7 7位位, ,加一加一位偶校验位位偶校验位, ,共共8 8位一个字节。位一个字节。 ASCIIASCII码规定码规定8 8个二进制位的最高一位(个二进制位的最高一位(b7)恒)恒为为0 0,余下的余下的7 7位可以给出位可以给出128128个编码个编码, ,表示表示128128个不同的字符
27、。个不同的字符。字符和字符串的表示方法字符和字符串的表示方法表表2.1 ASCII字符编码表字符编码表0000010100111001011101110000NULDELSP0Pp0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111DELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?O_oDELb3b2b1b0位位b6b5b
28、4位位2. 字符串字符串字符串字符串:是指连续的一串字符:是指连续的一串字符,通常方式下通常方式下,它们依次占用主存中它们依次占用主存中连续的多个字节连续的多个字节,每个字节存一个字符。每个字节存一个字符。 例例 将字符串:将字符串:IFABTHENREAD(C)从高位字节到低位字节依次存在主存中。从高位字节到低位字节依次存在主存中。解解:设:主存单元长度由设:主存单元长度由4个字节组成。每个字节中存放相应字符个字节组成。每个字节中存放相应字符的的ASCII值,文字表达式中的空格值,文字表达式中的空格“”在主存中也占一个字在主存中也占一个字节的位置。节的位置。 因而每个字节分别存放十进制的因而
29、每个字节分别存放十进制的73、70、32、65、62、66、32、84、72、69、78、32、82、69、65、68、40、67、41、32。 字符和字符串的表示方法字符和字符串的表示方法IF空AB空THEN空READ(C)空主存各字节单元内容主存各字节单元内容字符和字符串的表示方法字符和字符串的表示方法2.1.4 2.1.4 汉字的表示方法汉字的表示方法1. 1. 汉字的输入编码汉字的输入编码包括:包括:数字码数字码、拼音码拼音码和和字形码字形码数字码:数字码:常用的是国标区位码常用的是国标区位码,用数字串代表一个汉字输入。区位码是用数字串代表一个汉字输入。区位码是将国家标准局公布的将国家
30、标准局公布的6763个两级汉字分为个两级汉字分为94个个区区,每个区分每个区分94位位,实际上实际上把汉字表示成二维数组把汉字表示成二维数组,每个汉字在数组中的下标就是每个汉字在数组中的下标就是区位码区位码。区码和。区码和位码各两位十进制数字位码各两位十进制数字,因此输入一个汉字需按键因此输入一个汉字需按键四次四次。 数字编码输入的数字编码输入的优点优点是无重码是无重码,且输入码与内部编码的转换比较方便且输入码与内部编码的转换比较方便,。缺点缺点是代码难以记忆。是代码难以记忆。拼音码:拼音码:拼音码是以汉字拼音为基础的输入方法。使用拼音码是以汉字拼音为基础的输入方法。使用简单方便简单方便,但,
31、但汉字同音字太多汉字同音字太多,输入输入重码率很高重码率很高,同音字选择影响了输入速度。同音字选择影响了输入速度。汉字的表示方法汉字的表示方法(汉字的输入编码)(汉字的输入编码)字形码:字形码:字形编码是用汉字的形状来进行的编码(例:五笔字字形编码是用汉字的形状来进行的编码(例:五笔字型)。把汉字的笔划部件用字母或数字进行编码型)。把汉字的笔划部件用字母或数字进行编码,按笔划的顺序按笔划的顺序依次输入依次输入,就能表示一个汉字。就能表示一个汉字。 为了加快输入速度为了加快输入速度,在上述方法基础上在上述方法基础上,发展了词组输入发展了词组输入联想联想输入等多种快速输入方法。但是都利用了键盘进行
32、输入等多种快速输入方法。但是都利用了键盘进行“手动手动”输入。输入。理想的输入方式是利用语音或图象识别技术理想的输入方式是利用语音或图象识别技术“自动自动”将拼音或文将拼音或文本输入到计算机内本输入到计算机内,使计算机能认识汉字使计算机能认识汉字,听懂汉语听懂汉语,并将其自动转并将其自动转换为机内代码表示。目前这种理想已经成为现实。换为机内代码表示。目前这种理想已经成为现实。 汉字的表示方法汉字的表示方法(汉字的输入编码)(汉字的输入编码)2.2.汉字内码汉字内码 汉字内码汉字内码是用于汉字信息的存储、交换、检索等是用于汉字信息的存储、交换、检索等操作的机内代码操作的机内代码, ,一般采用两个
33、字节表示。英文字符一般采用两个字节表示。英文字符的机内代码是七位的的机内代码是七位的ASCIIASCII码码, ,当用一个字节表示时当用一个字节表示时, ,最高位为最高位为“0 0”。为了与英文字符能相互区别。为了与英文字符能相互区别, ,汉字机汉字机内代码中两个字节的最高位均规定为内代码中两个字节的最高位均规定为“1 1”。注意注意:有些系统中字节的最高位用于奇偶校验位,这种有些系统中字节的最高位用于奇偶校验位,这种情况下用三个字节表示汉字内码。情况下用三个字节表示汉字内码。汉字的表示方法汉字的表示方法(汉字的内码)(汉字的内码)3. 3. 汉字字模码汉字字模码字模码字模码是用点阵表示的汉字
34、字形代码是用点阵表示的汉字字形代码, ,它是汉字的输出形式它是汉字的输出形式。例如:例如:字模码字模码汉字的表示方法汉字的表示方法(汉字字模码)(汉字字模码)此例,汉字的字模码为:此例,汉字的字模码为:16位位 16位位=32字节字节注意到注意到:1.1.字模点阵只能用来构成字模点阵只能用来构成汉字库汉字库, ,而不能用于机内而不能用于机内存储。字库中存储了每个汉字的点阵代码,用于存储。字库中存储了每个汉字的点阵代码,用于汉字的显示输出或打印输出。当显示输出或打印汉字的显示输出或打印输出。当显示输出或打印输出时才检索字库,输出字模点阵,得到字形。输出时才检索字库,输出字模点阵,得到字形。2.2
35、.汉字的汉字的输入编码输入编码、汉字内码汉字内码、字模码字模码是计算机中是计算机中用于用于输入输入、内部处理内部处理、输出三种输出三种不同用途的编码不同用途的编码, ,不要混为一谈不要混为一谈。汉字的表示方法汉字的表示方法(汉字字模码)(汉字字模码) 各种因素常常导致计算机在处理信息过程中出现错误。为了各种因素常常导致计算机在处理信息过程中出现错误。为了防止错误防止错误, ,可将信号采用专门的逻辑线路进行编码以检测错误可将信号采用专门的逻辑线路进行编码以检测错误, ,甚至校正错误。甚至校正错误。2.1.5 2.1.5 校验码校验码 最简单且应用广泛的检错码方法是奇偶校验法,即:采用一最简单且应
36、用广泛的检错码方法是奇偶校验法,即:采用一位校验位的位校验位的奇校验奇校验或或偶校验的方法偶校验的方法。设设(01n1)是一个是一个n位字位字,则则奇校验位奇校验位定义为:定义为:C0 1 n1 ,式中式中 代表按位加代表按位加, 只有当中包含只有当中包含有奇数个有奇数个1时时,才使才使 C1,即即 C0。同理同理,偶校验位定义为:偶校验位定义为:C0 1 n1 即中包含偶数个即中包含偶数个1时时,才使才使C0。效验码效验码 假设一个字假设一个字从部件从部件 A A 传送到部件传送到部件 B B。在源点。在源点 A,A,校验位校验位C C可用上面公式算出来可用上面公式算出来, ,并合在一起将并
37、合在一起将( (0 01 1n-1n-1C)C)送到送到B B,采用偶效验。采用偶效验。假设,在假设,在B B点真正接收到的是点真正接收到的是( (0 01 1n n1 1C C ),),然后然后计算:计算: F F 0 0 1 1 n n1 1C C 若若F F1,1,意味着收到的信息有错意味着收到的信息有错, ,若若F F0,0,表明表明字传送正确。字传送正确。奇偶校验可提供奇数个错误检测奇偶校验可提供奇数个错误检测, ,但无法检测偶数个错误但无法检测偶数个错误, ,更无更无法识别错误信息的位置。(循环校验码法识别错误信息的位置。(循环校验码CRCCRC可解决此问题)可解决此问题)效验码效
38、验码例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 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
39、 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 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
40、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 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
41、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 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 基本的二进制加法、减法器基本的二进制加法、减法
42、器2.2.5 十进制加法器十进制加法器定点加减法运算定点加减法运算2.2.1 补码加法补码加法补码加法的公式是:补码加法的公式是:补补补补补补 (mod 2) 现分四种情况来证明。假设采用定点小数表示现分四种情况来证明。假设采用定点小数表示, ,因此证明因此证明的先决条件是:的先决条件是:1, 1, 1, 1, 1 1。(1)0,0,则则0。 相加两数都是正数相加两数都是正数, ,故其和也一定是正数。正数的补码和原故其和也一定是正数。正数的补码和原码是一样的码是一样的, ,可得:可得:补补补补补补(mod 2) 补码的加法补码的加法(2)(2)0,0,0,0,则则00或或000时时,2 ,2
43、( () 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,则则00或或 00。这种情况和第这种情况和第2 2种情况一样种情况一样, ,把把和和的位置对调即得证。的位置对调即得证。 (4)(4)0,0,0,0,则则00。 相加两数都是负数相加两数都是负数, ,则其和也一定是负数。则其和也一定是负数。 补补2 2, , 补补2 2
44、 补补 补补2 22 22 2(2(2) )上式右边分为上式右边分为”2 2”和和(2(2) )两部分两部分. .既然既然( () )是是负数负数, ,而其绝对值又小于而其绝对值又小于1,1,那么那么(2(2) )就一定是小于就一定是小于2 2而大于而大于1 1的数的数, ,进位进位”2 2”必丢失必丢失. .又因又因( ()0, )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 溢
45、出概念与检测方法溢出概念与检测方法 以定点小数为例以定点小数为例: 在定点小数机器中在定点小数机器中, ,数的表示范围为数的表示范围为| |1. | x 0 4+x=4-|x| 0 x -2 (2.22)溢出概念与检测方法溢出概念与检测方法或用同余式表示:或用同余式表示:补补4(mod 4)下式也同样成立:下式也同样成立: 补补 补补 补补(mod 4) 1. 两个符号位都看作数码一样参加运算两个符号位都看作数码一样参加运算 2.2.两数进行以两数进行以4位模的加法位模的加法, ,即最高符号位上产生的进即最高符号位上产生的进位要丢掉。位要丢掉。 采用变形补码后,如果两个数相加后,其结果的采用变
46、形补码后,如果两个数相加后,其结果的符号位出现符号位出现“01”或或“10”两种组合时两种组合时, ,表示发生溢出。表示发生溢出。这这是因为两个绝对值小于是因为两个绝对值小于1的数相加的数相加, ,其结果不会大于或其结果不会大于或等于等于2。所以,最高符号位所表示的是。所以,最高符号位所表示的是结果的正确符号结果的正确符号。溢出概念与检测方法溢出概念与检测方法为了得到两数变形补码之和等于两数之和的变形补码为了得到两数变形补码之和等于两数之和的变形补码, ,样必须:样必须: 例例14 14 0.1100.1100, 0, 0.1000,0.1000,求求。溢出概念与检测方法溢出概念与检测方法 解
47、解 : 补补00.1100,补补00.1000 补补 00.1100 补补 00.1000 01.0100 两个符号位出现两个符号位出现“0101”, ,表示已溢出表示已溢出, ,即结果即结果大于大于1 1。上溢上溢 又又例例 0.1100.1100, 0, 0.0001,0.0001,求求。溢出概念与检测方法溢出概念与检测方法 解解 : 补补00.1100,补补00.1000 补补 00.1100 补补 00.0001 00.1101 两个符号位两个符号位 = =“0000”, ,表示表示无溢出无溢出。 例例1515 0.1100, 0.1100, -0.1000,-0.1000,求求溢出概
48、念与检测方法溢出概念与检测方法 解解 : 补补11.0100,补补11.1000 补补11.0100补补11.1000 1010.1100.1100 两个符号位出现两个符号位出现“10”, ,表示已溢出表示已溢出, ,即结果即结果小于小于1。下溢下溢 又例又例 0.0100, 0.0100, -0.1000,-0.1000,求求。溢出概念与检测方法溢出概念与检测方法 解解 : 补补11.1100,补补11.1000 补补11.1100补补11.1000 1111.0100.0100 两个符号位出现两个符号位出现“11”, ,表示表示无溢出无溢出。溢出概念与检测方法溢出概念与检测方法由此可以得出
49、如下结论由此可以得出如下结论:1.1.当以模当以模4 4补码运算补码运算, ,运算结果的运算结果的二符号位相异二符号位相异时时, ,表示表示溢出溢出;相同相同时时, ,表示表示未溢出未溢出。 故故: : 溢出逻辑表达式为溢出逻辑表达式为 VSf1 Sf2,其中其中Sf1和和Sf2分分别为最高符号位和第二符号位。别为最高符号位和第二符号位。此逻辑表达式可此逻辑表达式可用用异或门异或门实现。实现。2. 2. 模模4 4补码相加的结果补码相加的结果, ,不论溢出与否不论溢出与否, ,最高符号位最高符号位始终指示正确的符号。始终指示正确的符号。 溢出概念与检测方法溢出概念与检测方法第二种溢出检测方法第
50、二种溢出检测方法:采用采用“单符号位法单符号位法”。 从例从例1 1和和例例2 2中看到中看到:(1).:(1).当最高有效位产生进位而当最高有效位产生进位而符号位无进位时符号位无进位时, ,产生产生上溢上溢;(2).(2).当最高有效位无进当最高有效位无进位而符号位有进位时位而符号位有进位时, ,产生产生下溢下溢。 故:故:溢出逻辑表达式为溢出逻辑表达式为: VCf Co其中其中: : Cf为符号位产生的进位为符号位产生的进位, ,Co为最高有效位产生的为最高有效位产生的进位。(进位。(显然:此逻辑关系可用异或门方便地实现显然:此逻辑关系可用异或门方便地实现)。)。 在定点机中,当运算结果发
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。