第1章 数的表示与运算_第1页
第1章 数的表示与运算_第2页
第1章 数的表示与运算_第3页
第1章 数的表示与运算_第4页
第1章 数的表示与运算_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术 基于8086和Proteus仿真(第2版)电子电气基础课程规划教材电子电气基础课程规划教材第第1 1章章数的表示与运算数的表示与运算本章主要本章主要内容内容2字符的表示法字符的表示法5二进制编码的十进制数二进制编码的十进制数4半导体存储器的分类半导体存储器的分类1数和数制数和数制1带符号二进制数的表示和运算带符号二进制数的表示和运算3无符号二进制数的表示和运算无符号二进制数的表示和运算1.1 1.1 数制数制1 1、计数制、计数制数制也称为计数制数制也称为计数制是指用一组固定的数字符号和统一的规是指用一组固定的数字符号和统一的规则表示数的方法。则表示数的方法。对于任意对于任

2、意r r进制数,可以用下式表示:进制数,可以用下式表示:1.1.1 数制的表示数制的表示 nminnmmiirarararararara110011221.1.1 1.1.1 数制的表示数制的表示va ai i为为数码数码,每一种进制数都有固定的数字符号,每一种进制数都有固定的数字符号,这个符号就是数码。这个符号就是数码。vi i为为数位数位,数位是指数码在一个数中所处的位置。,数位是指数码在一个数中所处的位置。vr r为为基数基数,基数是指在某计数制中,每个数位上能,基数是指在某计数制中,每个数位上能使用的数码的个数。使用的数码的个数。vr ri i为为权权,权是基数的幂,这个幂次由数位决定

3、。,权是基数的幂,这个幂次由数位决定。v例如十六进制数据例如十六进制数据 56.78=556.78=516161 1 + 6 + 616160 0 + 7 + 71616-1-1 + 8 + 81616-2-2 nminnmmiirarararararara110011221.1.1 1.1.1 数制的表示数制的表示2 2、计算机中常用的计数制、计算机中常用的计数制v在日常生活中,人们最常用的是十进制计数在日常生活中,人们最常用的是十进制计数制;制; v计算机中,为了便于数的存储和表示,使用计算机中,为了便于数的存储和表示,使用的是二进制计数制;的是二进制计数制;v由于二进制数据书写和记忆不方

4、便,在计算由于二进制数据书写和记忆不方便,在计算机系统中还常使用八进制和十六进制等计数机系统中还常使用八进制和十六进制等计数制。制。注:为了便于计算机识别,汇编程序规定,当十六进注:为了便于计算机识别,汇编程序规定,当十六进制数的首字符为字母时,前面加数字制数的首字符为字母时,前面加数字0 0。 1.1.1 1.1.1 数制的表示数制的表示数数 制制基数基数数数 码码运运 算算 规规 则则书写书写后缀后缀二进制二进制20, 1逢二进一,借一逢二进一,借一当二当二B八进制八进制80, 1, 2, 3, 4, 5, 6, 7逢八进一,借一逢八进一,借一当八当八O或或Q十进制十进制100, 1, 2

5、, 3, 4, 5, 6, 7, 8, 9逢十进一,借一逢十进一,借一当十当十D十六进十六进制制160, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F逢十六进一,借逢十六进一,借一当十六一当十六H1.1.2 1.1.2 数制之间的转换数制之间的转换1 1、其他数制转为十进制数:、其他数制转为十进制数: 方法:按权展开方法:按权展开每位数字乘以其权所得到的乘每位数字乘以其权所得到的乘积之和即为其所表示的数的值。积之和即为其所表示的数的值。【例例1-11-1】将将1010.101B1010.101B、23.4Q23.4Q和和0FA3.4H0FA3.4H转换

6、转换成十进制。成十进制。解:解:1010.101B 1010.101B 1 12 23 3 + 0 + 02 22 2 +1 +12 21 1 + 0 + 02 20 0 +1 +12 21 1 + 0 + 02 22 2 +1 +12 23 3 10.625D10.625D23.4Q 23.4Q 2 2 8 81 1 + 3 + 3 8 80 0 + 4 + 4 8 81 1 19.5D19.5D0FA3.4H 0FA3.4H 15 15 16 162 2 + 10 + 10 16 161 1 + 3 + 3 16 160 0 + 4 + 4 16 161 1 4003.25D4003.25

7、D1.1.2 1.1.2 数制之间的转换数制之间的转换2 2、十进制数转换为其它数制数、十进制数转换为其它数制数v 把十进制数转换为其它数制数的方法很多,通常把十进制数转换为其它数制数的方法很多,通常采用的方法有降幂法及乘除法。采用的方法有降幂法及乘除法。v 降幂法降幂法 假设要转换的十进制数为假设要转换的十进制数为N N。 步骤步骤1 1:找出最接近:找出最接近N N并小于等于并小于等于N N的的r r进制位权值进制位权值r ri i; 步骤步骤2 2:找到满足:找到满足0 0C Cr r的最大数的最大数C C,使得,使得N N- -C C r ri ir ri i,C C即即为转换结果(为

8、转换结果(r r进制数)第进制数)第i i位的位码位的位码a ai i; 步骤步骤3 3:计算:计算N N- -C C r ri i,并用此值作为新的,并用此值作为新的N N值,即值,即N NN N- -C C r ri i; 步骤步骤4 4:i i自减自减1 1,即,即i ii i-1-1,得到下一个位权值,得到下一个位权值r ri i。 重复步骤重复步骤2 2步骤步骤4 4,直至,直至N N为为0 0或转换结果达到所需精度。或转换结果达到所需精度。1.1.2 1.1.2 数制之间的转换数制之间的转换2 2、十进制数转换为其它数制数、十进制数转换为其它数制数v 乘除法乘除法整数部分:整数部分

9、: 除以基数取除以基数取余余,直至商为,直至商为0 0;小数部分:小数部分: 乘以基数取乘以基数取整整,直至积为整数或小数位数,直至积为整数或小数位数由精度定。由精度定。1.1.2 1.1.2 数制之间的转换数制之间的转换【例例1-21-2】把十进制数把十进制数117.8125117.8125转换成二进制数转换成二进制数 N Cri ai1171 1 2653 (a61 1)高位高位531 1 2521 (a51 1)211 1 245 (a41 1)50 0 235 (a30 0)51 1 221 (a21 1)10 0 211 (a10 0)11 1 200 (a01 1)0.81251

10、1 2- -10.3125 (a-11 1)0.31251 1 2- -20.0625 (a-21 1)0.06250 0 2- -30.0625 (a-30 0)0.06251 1 2 2- -40 (a-41 1)低位低位转换结果转换结果 : 117.8125D=1110101.1101B 降 幂 法【例例1-21-2】把十进制数把十进制数117.8125117.8125转换成二进制数。转换成二进制数。转换结果转换结果 : 117.8125D=1110101.1101B 乘 除 法【例例1-31-3】把十进制数把十进制数4895648956转换成十六进制数转换成十六进制数 NCriai48

11、956 11 163 3900 (a3B) 高位高位390015 162 60(a2F)603 161 12(a13)1212 160 0(a0C)低位低位转换结果转换结果 :48956D= BF3CH 降 幂 法【例例2-32-3】把十进制数把十进制数4895648956转换成十六进制数转换成十六进制数 转换结果转换结果 :48956D= BF3CH 乘 除 法3 3、其它数制之间的转换、其它数制之间的转换v 二进制与八进制数之间的转换二进制与八进制数之间的转换 由于八进制数以由于八进制数以2 23 3为基数,所以为基数,所以3 3位二进制数对应位二进制数对应1 1位位八进制数,对应关系如下

12、所示。八进制数,对应关系如下所示。 二进制数转换为八进制数时,以小数点为界,整数二进制数转换为八进制数时,以小数点为界,整数部分向左,小数部分向右,每部分向左,小数部分向右,每3 3位二进制数为一组,位二进制数为一组,用用1 1位八进制数表示,不足三位的,整数部分高位补位八进制数表示,不足三位的,整数部分高位补0 0,小数部分低位补,小数部分低位补0 0。 八进制数转换为二进制数采用与上述方法相反的方八进制数转换为二进制数采用与上述方法相反的方法,把每位八进制数用法,把每位八进制数用3 3位二进制数表示即可。位二进制数表示即可。1.1.2 1.1.2 数制之间的转换数制之间的转换二进制数二进制

13、数 000001010011 100 101 110 111八进制数八进制数01234567【例例1-41-4】把数把数11010.101B11010.101B转换为八进制数。转换为八进制数。11010.101B 11010.101B 011011 010010 . .101101B B 32.5Q32.5Q【例例1-51-5】把数把数34.56Q34.56Q转换为二进制数。转换为二进制数。34.56Q 34.56Q 011011 100100. .101101 110110B B 11100.101B11100.101B1.1.2 1.1.2 数制之间的转换数制之间的转换v 二进制与十六进制

14、数之间的转换:二进制与十六进制数之间的转换: 由于十六进制数以由于十六进制数以2 24 4为基数,所以为基数,所以4 4位二进制数位二进制数对应对应1 1位十六进制数,对应关系如下表所示。位十六进制数,对应关系如下表所示。 转换方法和二进制与八进制数之间的转换方法转换方法和二进制与八进制数之间的转换方法类似,区别是,这里为类似,区别是,这里为4 4位一组。位一组。二进制数二进制数00000001001000110100010101100111十六进制数十六进制数01234567二进制数二进制数10001001101010111100110111101111十六进制数十六进制数89ABCDEF【

15、例例1-61-6】把二进制数把二进制数11010.101B11010.101B转换为十六进制数。转换为十六进制数。11010.101B 11010.101B 00010001 10101010. .10101010B B 1A.AH1A.AH【例例1-71-7】把十六进制数把十六进制数56.78H56.78H转换为二进制数。转换为二进制数。56.78H 56.78H 01010101 01100110. .01110111 10001000B B 1010110.01111B1010110.01111B1.2 1.2 二进制数的表示与运算二进制数的表示与运算v任意一个二进制数任意一个二进制数x

16、 x都可以表示为:都可以表示为:x x=(-1)=(-1)S SM M2 2E EvS S表示符号位,表示符号位,S S=0=0时,时,x x为正数;为正数;S S=1=1时,时,x x为负数。为负数。M M是尾数,是尾数,E E是阶码是阶码。v当当E E是固定值时,数是固定值时,数x x的小数点位置固定,称为定点的小数点位置固定,称为定点数;当数;当E E的值可变时,数的值可变时,数x x的小数点位置是浮动的,的小数点位置是浮动的,称为浮点数称为浮点数。v计算机中,常用的定点数有:纯整数和纯小数。本计算机中,常用的定点数有:纯整数和纯小数。本书只涉及定点纯整数的表示与运算。书只涉及定点纯整数

17、的表示与运算。1.2 1.2 二进制数的表示与运算二进制数的表示与运算v计算机处理的数包括带符号数和无符号数两种类型。计算机处理的数包括带符号数和无符号数两种类型。无符号数不分正负,带符号数有正数和负数之分。计无符号数不分正负,带符号数有正数和负数之分。计算机中对于无符号数和带符号数的处理方法是不一样算机中对于无符号数和带符号数的处理方法是不一样的。的。v带符号数的二进制格式中包括符号位和数值位两部分带符号数的二进制格式中包括符号位和数值位两部分,通常用最高位作为符号位。带符号数连同符号位在,通常用最高位作为符号位。带符号数连同符号位在内的数值化表示形式称为机器数,而这个数本身的值内的数值化表

18、示形式称为机器数,而这个数本身的值称为真值。而带符号数的运算则根据编码方式的不同称为真值。而带符号数的运算则根据编码方式的不同,有不同的运算规则。,有不同的运算规则。1.2.1 1.2.1 无符号二进制数的表示无符号二进制数的表示 v在某些情况下,要处理的数全是正数,此时不在某些情况下,要处理的数全是正数,此时不需要都考虑符号位的表示问题。可以把最高有需要都考虑符号位的表示问题。可以把最高有效位也作为数值位,这样的数称为无符号数。效位也作为数值位,这样的数称为无符号数。v8 8位无符号数的表数范围是:位无符号数的表数范围是:0 0255D255D;v1616位无符号数的表数范围是:位无符号数的

19、表数范围是:0 065535D65535D。v在计算机中,无符号数常用来表示地址。在计算机中,无符号数常用来表示地址。v带符号数与无符号数的处理是不一样的,要注带符号数与无符号数的处理是不一样的,要注意区分。意区分。1.2.2 1.2.2 无符号二进制数的运算无符号二进制数的运算 v在计算机中,无符号数的运算采用二进制数的在计算机中,无符号数的运算采用二进制数的算术和逻辑运算规则进行运算算术和逻辑运算规则进行运算。1算术运算规则算术运算规则二进制数的算术运算包括加法、减法、乘法和除法二进制数的算术运算包括加法、减法、乘法和除法4种种运算名运算名运算符运算符运算规则运算规则说明说明加法加法+ +

20、0 0 + 0 = 0 1 + 0 = 1 + 0 = 0 1 + 0 = 1 0 0 + 1 = 1 1 + 1 = 10+ 1 = 1 1 + 1 = 10逢二进一逢二进一减法减法- -0-0= 0 1-0 = 1 0-1 =1 1-1= 00-0= 0 1-0 = 1 0-1 =1 1-1= 0借一当二借一当二乘法乘法 0 0 0=0 0 0=0 0 1=0 1=0 1 1 0=0 1 0=0 1 1=1 1=1除法除法 0 0 1=0 11=0 1 1=11=1除数不得为除数不得为0 01.2.2 1.2.2 无符号二进制数的运算无符号二进制数的运算 2逻辑逻辑运算运算规则规则常用的逻

21、辑运算有与、或、非和异或常用的逻辑运算有与、或、非和异或4 4种种运算名运算名运算符运算符运算规则运算规则与(与(ANDAND)0 0=0 0 1= 0 1 0 = 0 1 1 = 1或(或(OROR)0 0=0 0 1= 1 1 0 = 1 1 1 = 1非(非(NOTNOT)-异或(异或(XORXOR)00 = 0 01 = 1 10 = 1 11 = 01.2.2 1.2.2 无符号二进制数的运算无符号二进制数的运算 v 运算举例运算举例【例例1-81-8】无符号二进数的算术运算。无符号二进数的算术运算。 1010 1010B + 0101 1101B 1010 1010B + 0101

22、 1101B 1 0000 0111B1 0000 0111B 1010 1010B 1010 1010B0101 1101B 0101 1101B 0100 1101B0100 1101B【例例1-91-9】无符号二进数的逻辑运算。无符号二进数的逻辑运算。 1010 1010B 0101 1101B 1010 1010B 0101 1101B 0000 1000B0000 1000B 1010 1010B 0101 1101B 1010 1010B 0101 1101B 1111 1111B1111 1111B 1010 1010B 0101 1101B 1010 1010B 0101 11

23、01B 1111 0111B1111 0111B1.2.31.2.3带符号二进制数的表示带符号二进制数的表示1 1、原码表示法:符号、原码表示法:符号 + + 绝对值绝对值v最高位表示符号(正数用最高位表示符号(正数用0,0,负数用负数用1 1)v其他位表示数值位其他位表示数值位v数数x x的原码记作的原码记作xx原原 ,如机器字长为,如机器字长为n n,则原,则原码的定义如下:码的定义如下:1 1、原码、原码v例如当机器字长例如当机器字长n n8 8时,时, +0D+0D原原 0000 0000 , 0000 0000 , 0D0D原原 1000 00001000 0000 +1D +1D原

24、原 0000 0001 , 0000 0001 , 1D1D原原 1000 00011000 0001 +45D +45D原原 0010 1101 0010 1101 , 45D45D原原 1010 11011010 1101 +127D +127D原原 0111 1111 , 0111 1111 , 127D127D原原 1111 11111111 1111 0 0 的表示不惟一的表示不惟一1 1、原码、原码v按照定义,设按照定义,设n n为字长,则原码能表示的整为字长,则原码能表示的整数范围是:数范围是:(2(2n-1n-11)1)+(2+(2n-1n-11)1);v例如:例如: 8 8位

25、二进制原码表示的整数范围是位二进制原码表示的整数范围是 127D127D+127D+127D; 1616位二进制原码表示的整数范围是位二进制原码表示的整数范围是 32767D32767D+32767D+32767D。 2 2、反码、反码v反码表示法:反码表示法: 一个正数的反码和原码相同;一个正数的反码和原码相同; 一个负数的反码的符号位与其原码的符号一个负数的反码的符号位与其原码的符号位相同,其余位通过将其原码的数值部分位相同,其余位通过将其原码的数值部分按位求反得到。按位求反得到。v数数x x的反码记作的反码记作xx反反 ,如机器字长为,如机器字长为n n,则反,则反码的定义如下:码的定义

26、如下: x反 x 0 x 2n-1 1(2n 1)|x| ( 2n-1 1) x 02 2、反码、反码v例如当机器字长例如当机器字长n n8 8时,时, +0D+0D反反0000 0000 , 0000 0000 , 0D0D反反1111 11111111 1111 +1D +1D反反0000 0001 , 0000 0001 , 1D1D反反1111 11101111 1110 +45D +45D反反0010 1101 0010 1101 , 45D45D反反1101 00101101 0010 +127D +127D反反0111 1111 , 0111 1111 , 127D127D反反1

27、000 00001000 0000 0 0 的表示不惟一的表示不惟一2 2、反码、反码v按照定义,设按照定义,设n n为字长,则反码能表示的整数为字长,则反码能表示的整数范围是:范围是:(2(2n-1n-11)1)+(2+(2n-1n-11)1);v例如:例如: 8 8位二进制反码表示的整数范围是位二进制反码表示的整数范围是 127D127D+127D+127D; 1616位二进制反码表示的整数范围是位二进制反码表示的整数范围是 32767D32767D+32767D+32767D。 3 3、补码、补码v补码表示法:补码表示法: 一个正数的补码和反码、原码相同;一个正数的补码和反码、原码相同;

28、 一个负数的补码的符号位与其原码的符号一个负数的补码的符号位与其原码的符号位相同,其余位可通过将其反码数值部分位相同,其余位可通过将其反码数值部分加加1 1得到。得到。 v数数x x的补码记作的补码记作xx补补 ,如机器字长为,如机器字长为n n,则补,则补码的定义如下:码的定义如下:3 3、补码、补码v例如当机器字长例如当机器字长n n8 8时,时, +0D+0D补补0000 0000 , 0000 0000 , 0D0D补补0000 0000 0000 0000 +1D +1D补补0000 0001 , 0000 0001 , 1D1D补补1111 11111111 1111 +45D +

29、45D补补0010 1101 0010 1101 , 45D45D补补1101 00111101 0011 +127D +127D补补0111 1111 , 0111 1111 , 127D127D补补1000 00011000 0001 0 0 的表示惟一的表示惟一3 3、补码、补码v按照定义,设按照定义,设n n为字长,则补码能表示的整数为字长,则补码能表示的整数范围是:范围是:2 2n-1n-1+(2+(2n-1n-11)1);v例如:例如: 8 8位二进制补码表示的整数范围是位二进制补码表示的整数范围是 128D128D+127D+127D; 1616位二进制补码表示的整数范围是位二进

30、制补码表示的整数范围是 32768D32768D+32767D+32767D。 v补码比原码、反码所能表示的数的范围大,补码比原码、反码所能表示的数的范围大,数数0 0的补码只有一种表示形式,是计算机中采的补码只有一种表示形式,是计算机中采用的带符号数的编码方式。用的带符号数的编码方式。3 3、补码、补码v根据补码求真值的方法根据补码求真值的方法v若补码的最高位为若补码的最高位为0 0,则该数是正数,其后的,则该数是正数,其后的数值部分就是其真值;若反码的最高位为数值部分就是其真值;若反码的最高位为1 1,则该数是负数,将其后的数值部分按位取反则该数是负数,将其后的数值部分按位取反加加1 1后

31、,即可得到真值后,即可得到真值(-128D-128D没有原码和反没有原码和反码,通过定义式求得)码,通过定义式求得)部分部分8 8位二进制数的原码、反码和补码对照表位二进制数的原码、反码和补码对照表真值真值带符号数带符号数十进制格式十进制格式二进制数格式二进制数格式原码原码反码反码补码补码0 00000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001 10000 00010000 00010000 00010000 00010000 00010000 00010000 00010000 0001+126+

32、1260111 11100111 11100111 11100111 11100111 11100111 11100111 11100111 1110+127+1270111 11110111 11110111 11110111 11110111 11110111 11110111 11110111 1111-128-128-1000 0000-1000 0000无无无无1000 00001000 0000-127-127-0111 1111-0111 11111111 11111111 11111000 00001000 00001000 00011000 0001-1-1-0000 000

33、1-0000 00011000 00011000 00011111 11101111 11101111 11111111 1111-0-0-0000 0000-0000 00001000 00001000 00001111 11111111 11110000 00000000 00001.2.41.2.4带符号二进制数的运算带符号二进制数的运算1 1、补码运算规则、补码运算规则v采用补码表示的带符号数,其符号位和数值位同时参与运采用补码表示的带符号数,其符号位和数值位同时参与运算,运算结果仍然是补码;算,运算结果仍然是补码;v任何两数任何两数相加相加,无论正负,只要把它们的补码相加即可;,无论

34、正负,只要把它们的补码相加即可;v任何两数任何两数相减相减,无论正负,只要把减数相反数的补码与被,无论正负,只要把减数相反数的补码与被减数的补码相加即可;减数的补码相加即可;v运算公式如下:运算公式如下: x + yx + y补补 xx补补 + y+ y补补 x x yy补补 xx补补 + + yy补补 v从上面的公式可以看出,补码的减法运算可以转换成加法从上面的公式可以看出,补码的减法运算可以转换成加法来完成的,因此,在计算机中利用加法器就可以实现补码来完成的,因此,在计算机中利用加法器就可以实现补码的加法和减法运算。的加法和减法运算。 v由于计算机的字长有限,因此,所能表示的由于计算机的字

35、长有限,因此,所能表示的数是有范围的。例如数是有范围的。例如8 8位二进制补码表示的整位二进制补码表示的整数范围是数范围是 128D128D+127D+127D;v当运算结果超过这个范围时,运算结果将出当运算结果超过这个范围时,运算结果将出错,这种情况称为错,这种情况称为溢出溢出。v产生溢出的原因是数值的有效位占据了符号产生溢出的原因是数值的有效位占据了符号位。位。2 2、补码运算的溢出问题、补码运算的溢出问题v由于计算机的字长有限,因此,所能表示的数是由于计算机的字长有限,因此,所能表示的数是有范围的。当运算结果超过这个范围时,运算结有范围的。当运算结果超过这个范围时,运算结果将出错,这种情

36、况称为果将出错,这种情况称为溢出溢出。v溢出一般会造成结果出错。溢出一般会造成结果出错。v而由于运算结果超出了位数而由于运算结果超出了位数, ,最高有效位会向前最高有效位会向前产生一个产生一个进位进位,这个进位自然丢失,一般不表示,这个进位自然丢失,一般不表示结果的对错;结果的对错;v产生溢出的原因是数值的有效位占据了符号位。产生溢出的原因是数值的有效位占据了符号位。2 2、补码运算的溢出问题、补码运算的溢出问题v 利用符号位判别利用符号位判别若两个同号数相加,结果的符号位与之相若两个同号数相加,结果的符号位与之相反,则溢出;反,则溢出;若两个异号数相减,结果的符号位与减数若两个异号数相减,结

37、果的符号位与减数相同,则溢出;相同,则溢出;若两个异号数相加或两个同号数相减,则若两个异号数相加或两个同号数相减,则不溢出。不溢出。v 利用运算过程中的进位产生情况判别利用运算过程中的进位产生情况判别若次高位(最高数值位)和最高位(符号若次高位(最高数值位)和最高位(符号位)不同时产生进位或借位,则溢出;位)不同时产生进位或借位,则溢出;若次高位(最高数值位)和最高位(符号若次高位(最高数值位)和最高位(符号位)都产生进位或借位,则不溢出。位)都产生进位或借位,则不溢出。溢出的判别方法溢出的判别方法【例例1-101-10】当字长为当字长为8 8位时,计算位时,计算-64D+64D-64D+64

38、D。溢出的判别溢出的判别v 本例中运算结果为本例中运算结果为0 0,根据定义,在,根据定义,在8 8位补码位补码的表示范围的表示范围128D128D+127D+127D之内,不会溢出。之内,不会溢出。v 利用符号位判别:两个异号数相加不溢出。利用符号位判别:两个异号数相加不溢出。v 利用进位判别:次高位和最高位都产生了进利用进位判别:次高位和最高位都产生了进位,不溢出。位,不溢出。【例例1-111-11】当字长为当字长为8 8位时,计算位时,计算127D+1D127D+1D。溢出的判别溢出的判别v 本例中运算结果为本例中运算结果为128128,根据定义,根据定义,超出超出了了8 8位补码的表示

39、范围位补码的表示范围128D128D+127D+127D,溢出。,溢出。v 利用符号位判别:两个正数相加,结果是负利用符号位判别:两个正数相加,结果是负数,溢出。数,溢出。v 利用进位判别:次高位向前有进位,而最高利用进位判别:次高位向前有进位,而最高位没有产生进位,溢出。位没有产生进位,溢出。1.3 BCD1.3 BCD码的表示与运算码的表示与运算1.3.1 BCD1.3.1 BCD码的编码方法码的编码方法v 在计算机内部采用二进制形式表示数,但人们习在计算机内部采用二进制形式表示数,但人们习惯使用十进制数。惯使用十进制数。v BCDBCD码,是二进制编码的十进制数的简称,是为码,是二进制编

40、码的十进制数的简称,是为了便于人机交往而设计的一种数字编码。了便于人机交往而设计的一种数字编码。v BCDBCD码的编码规则是:码的编码规则是:用用4 4位二进制数字表示一位位二进制数字表示一位十进制数字。十进制数字。v 在十进制数码与在十进制数码与4 4位二进制编码表示的数之间选位二进制编码表示的数之间选择不同的对应规律,就可以得到不同形式的编码择不同的对应规律,就可以得到不同形式的编码。常用的。常用的BCDBCD码有:码有:8421BCD8421BCD码、余码、余3 3码、格雷码码、格雷码等。等。v 80868086微型计算机中支持微型计算机中支持8421BCD8421BCD码的运算。码的

41、运算。1 1、8421BCD8421BCD码的编码规则码的编码规则v 8421BCD8421BCD码的码的4 4位二进制数码的位权分别是:位二进制数码的位权分别是:8 8,4 4,2 2,1 1。8421BCD8421BCD码的名称也就是由此而来。码的名称也就是由此而来。v 将每位数码与对应的权相乘求和,就是它代表的十将每位数码与对应的权相乘求和,就是它代表的十进制的数值。进制的数值。v 十进制数与十进制数与8421BCD8421BCD码的对应关系如下表所示:码的对应关系如下表所示:十进制数十进制数真值真值8421BCD码码十进制数十进制数真值真值8421BCD码码0 0000 5 0101

42、1 0001 6 0110 2 0010 7 0111 3 0011 8 1000 4 0100 9 10011 1、8421BCD8421BCD码的编码规则码的编码规则v8421BCD8421BCD码的优点:码的优点: 十进制数的每一位表示法与该数的二进制形式十进制数的每一位表示法与该数的二进制形式一样,容易识别。一样,容易识别。v8421BCD8421BCD码的缺点:码的缺点: 1010101011111111这这6 6个编码没有用到,是无意义的个编码没有用到,是无意义的编码。编码。 运算结果如果落到这运算结果如果落到这6 6个编码的范围内时,需个编码的范围内时,需要经过转换后,才能得到正

43、确的结果。要经过转换后,才能得到正确的结果。 这种转换,在这种转换,在80 x8680 x86微型计算机中,可以通过微型计算机中,可以通过十进制调整指令来实现。十进制调整指令来实现。2 2、8421BCD8421BCD码的格式码的格式BCDBCD码有两种格式:码有两种格式:v压缩压缩8421BCD8421BCD码(组合码(组合8421BCD8421BCD码)码) 用用4 4位二进制数表示位二进制数表示1 1位十进制数,位十进制数,一个字节一个字节可以表示两位十进制数。可以表示两位十进制数。 例如:例如:96D96D的压缩的压缩8421BCD8421BCD码表示形式是:码表示形式是: 1001

44、01101001 0110。v非压缩非压缩8421BCD8421BCD码(非组合码(非组合8421BCD8421BCD码)码) 用一个字节的低用一个字节的低4 4位表示位表示1 1位十进制数,高位十进制数,高4 4位任意,通常设为位任意,通常设为00000000,一个字节只表示一一个字节只表示一位十进制数。位十进制数。 例如:例如:96D96D的非压缩的非压缩8421BCD8421BCD码表示形式是:码表示形式是: 0000 1001 0000 01100000 1001 0000 0110。1.3.2 8421BCD1.3.2 8421BCD码的加减运算码的加减运算1 1、压缩、压缩8421

45、BCD8421BCD码的加减运算码的加减运算v参与运算的操作数为压缩参与运算的操作数为压缩8421BCD8421BCD码;码;v结果也是压缩结果也是压缩8421BCD8421BCD码。码。【例例1-121-12】计算用压缩计算用压缩8421BCD8421BCD码表示的两个十码表示的两个十进制数进制数1616和和1818的和。的和。第一步第一步:做加法。:做加法。16D=00010110BCD16D=00010110BCD,18D=00011000BCD18D=00011000BCD。运算过程。运算过程如下:如下:【例例1-121-12】第二步第二步:分析上式运算结果,进行十进制调整。:分析上式

46、运算结果,进行十进制调整。v结果分析结果分析: 16D16D18D=34D18D=34D,用压缩,用压缩8421BCD8421BCD码进行加法运算,结码进行加法运算,结果应为果应为00110100BCD00110100BCD。 但上式运算的结果是但上式运算的结果是0010 11100010 1110,其中的低位,其中的低位11101110不不是有效的压缩是有效的压缩8421BCD8421BCD码。码。v原因分析原因分析: 采用压缩采用压缩8421BCD8421BCD码运算时,运算器仍然进行的是二码运算时,运算器仍然进行的是二进制数的运算,采用的进位规则不是十进制运算规进制数的运算,采用的进位规

47、则不是十进制运算规定的逢十进一。定的逢十进一。 对应到本例中,就是个位上对应到本例中,就是个位上6 6和和8 8相加,结果是相加,结果是1414,大于大于9 9了,应该向十位有个进位(逢十进一),但是了,应该向十位有个进位(逢十进一),但是实际这一进位并没有产生。实际这一进位并没有产生。【例例1-121-12】v解决的办法解决的办法: 将出错的那一位压缩将出错的那一位压缩8421BCD8421BCD码与码与6 6相加。相加。 相加后如果产生进位,则该进位应该加到压相加后如果产生进位,则该进位应该加到压缩缩8421BCD8421BCD码的高位。码的高位。压缩压缩8421BCD8421BCD数运算

48、的十进制调整规则数运算的十进制调整规则 v 加法运算后的十进制调整规则加法运算后的十进制调整规则若加法和的个位大于若加法和的个位大于9 9或向十位有进位,则需要或向十位有进位,则需要“加加6 6调整调整”。即,所得和要加上。即,所得和要加上00000110BCD00000110BCD;若加法和的十位大于若加法和的十位大于9 9或向百位有进位,则需要或向百位有进位,则需要“加加6060调整调整”。即,所得和要加上。即,所得和要加上01100000BCD01100000BCD。v 减法运算后的十进制调整规则减法运算后的十进制调整规则若减法差的个位大于若减法差的个位大于9 9或向十位有借位,则需要或

49、向十位有借位,则需要“减减6 6调整调整”。即,所得和要减去。即,所得和要减去00000110BCD00000110BCD;若减法差的十位大于若减法差的十位大于9 9或向百位有进位,则需要或向百位有进位,则需要“减减6060调整调整”即,所得和要减去即,所得和要减去01100000BCD01100000BCD。【例例1-131-13】v计算用压缩计算用压缩8421BCD8421BCD码表示的两个十进制数码表示的两个十进制数3939和和9898的和。的和。解:解:39D=00111001BCD39D=00111001BCD,98D=10011000BCD98D=10011000BCD。【例例1-141-14

温馨提示

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

评论

0/150

提交评论