微机接口第2章 计算机中数值_第1页
微机接口第2章 计算机中数值_第2页
微机接口第2章 计算机中数值_第3页
微机接口第2章 计算机中数值_第4页
微机接口第2章 计算机中数值_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、第第2 2章章计算机中的数计算机中的数第第2 2章章 计算机中的数和数制计算机中的数和数制 本章主要本章主要内容内容带符号二进制数的表示和运算带符号二进制数的表示和运算2字符的表示法字符的表示法5无符号整数无符号整数4半导体存储器的分类半导体存储器的分类1数和数制数和数制1二进制编码的十进制数二进制编码的十进制数3第第2 2章章 计算机中的数和数制计算机中的数和数制 2.1 2.1 数和数制数和数制1 1、计数制、计数制数制也称为计数制数制也称为计数制是指用一组固定的数字符号和统一的规是指用一组固定的数字符号和统一的规则表示数的方法。则表示数的方法。对于任意对于任意r r进制数,可以用下式表示

2、:进制数,可以用下式表示:2.1.1 数制的表示数制的表示 nminnmmiirarararararara11001122第第2 2章章 计算机中的数和数制计算机中的数和数制 2.1.1 2.1.1 数制的表示数制的表示va ai i为为数码数码,每一种进制数都有固定的数字符号,每一种进制数都有固定的数字符号,这个符号就是数码。这个符号就是数码。vi i为为数位数位,数位是指数码在一个数中所处的位置。,数位是指数码在一个数中所处的位置。vr r为为基数基数,基数是指在某计数制中,每个数位上能,基数是指在某计数制中,每个数位上能使用的数码的个数。使用的数码的个数。vr ri i为为权权,权是基数

3、的幂,这个幂次由数位决定。,权是基数的幂,这个幂次由数位决定。v例如十进制数据例如十进制数据 56.28=556.28=510101 1 + 6 + 610100 0 + 2 + 21010-1-1 + 8 + 81010-2-2 nminnmmiirarararararara11001122第第2 2章章 计算机中的数和数制计算机中的数和数制 2.1.1 2.1.1 数制的表示数制的表示2 2、计算机中常用的计数制、计算机中常用的计数制v在日常生活中,人们最常用的是十进制计数在日常生活中,人们最常用的是十进制计数制;制; v计算机中,为了便于数的存储和表示,使用计算机中,为了便于数的存储和表

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

5、制八进制80, 1, 2, 3, 4, 5, 6, 7逢八进一,借一逢八进一,借一当八当八O或或Q十进制十进制100, 1, 2, 3, 4, 5, 6, 7, 8, 9逢十进一,借一逢十进一,借一当十当十D十六进十六进制制160, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F逢十六进一,借逢十六进一,借一当十六一当十六H第第2 2章章 计算机中的数和数制计算机中的数和数制 2.1.2 2.1.2 数制之间的转换数制之间的转换1 1、其他数制转为十进制数:、其他数制转为十进制数: 方法:按权展开方法:按权展开每位数字乘以其权所得到的乘每位数字乘以其权所

6、得到的乘积之和即为其所表示的数的值。积之和即为其所表示的数的值。第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-12-1】将将1010.101B1010.101B、23.4Q23.4Q和和56.78H56.78H转换成转换成十进制。十进制。解:解: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

7、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.25D2.1.2 2.1.2 数制之间的转换数制之间的转换第第2 2章章 计算机中的数和数制计算机中的数和数制 2 2、十进制数转换为其它数制数、十进制数转换为其它数制数v 把十进制数转换为其它数制数的方法很多,通常把十进制数转换为其它数制数的方法很多,通常采用的方法有降幂法及乘除法。采用的方法有降幂法及乘除法。v 降幂法降幂法 假设要转换的十进制数为假设要转换的十进制

8、数为N,N,找出最接近找出最接近N N并小并小于等于于等于N N的的r r进制位权值进制位权值r ri i; N=NN=NC Cr ri i,(,(C0C0且且N Nr ri i) ); 记录这个记录这个C,C,作为作为i i位的位码位的位码a ai i; i=ii=i1 1,得到下一个位权值,得到下一个位权值r ri i;1.1. 重复重复2 2、3 3、4 4 ,直至,直至N N为为0 0或达到所需精度。或达到所需精度。2.1.2 2.1.2 数制之间的转换数制之间的转换第第2 2章章 计算机中的数和数制计算机中的数和数制 2 2、十进制数转换为其它数制数、十进制数转换为其它数制数v 乘除

9、法乘除法整数部分:整数部分: 除以基数取除以基数取余余,直至商为,直至商为0 0;小数部分:小数部分: 乘以基数取乘以基数取整整,直至积为整数或小数位数,直至积为整数或小数位数由精度定。由精度定。2.1.2 2.1.2 数制之间的转换数制之间的转换第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-22-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、10 0 211 (a10 0)11 1 200 (a01 1)0.81251 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 第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-22-2】把十进制数把十进制数117.8125117.8125转换成二进制数。转换成二进制数。 转换结果转换结果 : 117.8125D=1110101.110

11、1B 第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-32-3】把十进制数把十进制数4895648956转换成十六进制数转换成十六进制数 NCriai48956 11 163 3900 (a3B) 高位高位390015 162 60(a2F)603 161 12(a13)1212 160 0(a0C)低位低位转换结果转换结果 :48956D= BF3CH 第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-32-3】把十进制数把十进制数4895648956转换成十六进制数转换成十六进制数 转换结果转换结果 :48956D= BF3CH 第第2 2章章 计算机中的数和

12、数制计算机中的数和数制 3 3、其它数制之间的转换、其它数制之间的转换v 二进制与八进制数之间的转换二进制与八进制数之间的转换 由于八进制数以由于八进制数以2 23 3为基数,所以为基数,所以3 3位二进制数对应位二进制数对应1 1位位八进制数,对应关系如下所示。八进制数,对应关系如下所示。 二进制数转换为八进制数时,以小数点为界,整数二进制数转换为八进制数时,以小数点为界,整数部分向左,小数部分向右,每部分向左,小数部分向右,每3 3位二进制数为一组,位二进制数为一组,用用1 1位八进制数表示,不足三位的,整数部分高位补位八进制数表示,不足三位的,整数部分高位补0 0,小数部分低位补,小数部

13、分低位补0 0。 八进制数转换为二进制数采用与上述方法相反的方八进制数转换为二进制数采用与上述方法相反的方法,把每位八进制数用法,把每位八进制数用3 3位二进制数表示即可。位二进制数表示即可。2.1.2 2.1.2 数制之间的转换数制之间的转换二进制数二进制数 000001010011 100 101 110 111八进制数八进制数01234567第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-42-4】把数把数11010.101B11010.101B转换为八进制数。转换为八进制数。11010.101B 11010.101B 011011 010010 . .101101B B

14、 32.5Q32.5Q【例例2-52-5】把数把数34.56Q34.56Q转换为二进制数。转换为二进制数。34.56Q 34.56Q 011011 100100. .101101 110110B B 11100.101B11100.101B第第2 2章章 计算机中的数和数制计算机中的数和数制 2.1.2 2.1.2 数制之间的转换数制之间的转换v 二进制与十六进制数之间的转换:二进制与十六进制数之间的转换: 由于十六进制数以由于十六进制数以2 24 4为基数,所以为基数,所以4 4位二进制数位二进制数对应对应1 1位十六进制数,对应关系如下表所示。位十六进制数,对应关系如下表所示。 转换方法和

15、二进制与八进制数之间的转换方法转换方法和二进制与八进制数之间的转换方法类似,区别是,这里为类似,区别是,这里为4 4位一组。位一组。二进制数二进制数00000001001000110100010101100111十六进制数十六进制数01234567二进制数二进制数10001001101010111100110111101111十六进制数十六进制数89ABCDEF第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-62-6】把二进制数把二进制数11010.101B11010.101B转换为十六进制数。转换为十六进制数。11010.101B 11010.101B 00010001 10

16、101010. .10101010B B 15.AH15.AH【例例2-72-7】把十六进制数把十六进制数56.78H56.78H转换为二进制数。转换为二进制数。56.78H 56.78H 01010101 01100110. .01110111 10001000B B 1010110.01111B1010110.01111B第第2 2章章 计算机中的数和数制计算机中的数和数制 2.1.3 2.1.3 二进制数的运算二进制数的运算v算术运算算术运算加法规则加法规则:逢二进一。即:逢二进一。即: 0 + 0 0 + 0 0 0; 1 + 0 1 + 0 1 1; 0 + 1 0 + 1 1 1;

17、 1 + 1 1 + 1 1010;减法规则减法规则:借一当二。即:借一当二。即: 0 0 0 0 0 0; 1 1 0 0 1 1; 0 0 1 1 1 1; 1 1 1 1 0 0;乘法规则乘法规则:任何数乘以:任何数乘以0 0得得0 0,1 1乘以任何数得该数。乘以任何数得该数。即:即: 0 0 0 00 0; 0 0 1 10 0; 1 1 0 00 0; 1 1 1 11 1;除法规则除法规则:0 0除以任何数得除以任何数得0 0,任何数除以,任何数除以1 1得该数,得该数,除数不得为除数不得为0 0。即:。即: 0 01 10 0 ; 1 11 11 1 。 第第2 2章章 计算机

18、中的数和数制计算机中的数和数制 2.1.3 2.1.3 二进制数的运算二进制数的运算v 逻辑运算逻辑运算“与与”运算(运算(AND) “或或”运算(运算(OR) A B A B A B A B 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1“非非”运算(运算(NOT) “异或异或”运算(运算(XOR) A A A B A B 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0第第2 2章章 计算机中的数和数制计算机中的数和数制 2.1.3 2.1.3 二进制数的运算二进制数的运算v 逻辑运算逻辑运算【例例2-82-8】多位二进制算术运

19、算。多位二进制算术运算。 1010 1010B + 0101 1101B 1010 1010B + 0101 1101B 1 0000 0111B1 0000 0111B 1010 1010B 1010 1010B0101 1101B 0101 1101B 0100 1101B0100 1101B【例例2-92-9】多位二进制逻辑运算。多位二进制逻辑运算。 1010 1010B 0101 1101B 1010 1010B 0101 1101B 0000 1000B0000 1000B 1010 1010B 0101 1101B 1010 1010B 0101 1101B 1111 1111B1

20、111 1111B 1010 1010B 0101 1101B 1010 1010B 0101 1101B 1111 0111B1111 0111B第第2 2章章 计算机中的数和数制计算机中的数和数制 2.1.3 2.1.3 二进制数的运算二进制数的运算v 补充补充1 1:十六进制数的算术运算:十六进制数的算术运算v 十六进制数进行算术运算时逢十六进一,借一为十六进制数进行算术运算时逢十六进一,借一为十六;十六;v 例如:例如: 05C3H + 3D25H ? 3D25H - 05C3H ? 加法:两个一位数之和为加法:两个一位数之和为S,若,若S=16,结果用,结果用S-16取代取代S,并进

21、位并进位1。减法:于十进制相似,够减时直接相减,减法:于十进制相似,够减时直接相减,不够时服从向高位进不够时服从向高位进1为为16的规则。的规则。第第2 2章章 计算机中的数和数制计算机中的数和数制 2.1.3 2.1.3 二进制数的运算二进制数的运算v 补充补充2 2:十六进制数的逻辑运算:十六进制数的逻辑运算十六进制数运算时转换成二进制数,按位进行十六进制数运算时转换成二进制数,按位进行操作;操作;例如:例如:05C3H 05C3H 3D25H = 0000 0110 1100 0011B 3D25H = 0000 0110 1100 0011B 0011 1101 0010 0101B

22、0011 1101 0010 0101B = 0000 0000 0000 0001B = 0000 0000 0000 0001B = 0001H = 0001H第第2 2章章 计算机中的数和数制计算机中的数和数制 2.22.2带符号二进制数的表示与运算带符号二进制数的表示与运算v数分为带符号数和无符号数两种类型;数分为带符号数和无符号数两种类型;v无符号数不分正负,表示无符号数的各二进制数无符号数不分正负,表示无符号数的各二进制数位都是数值位;位都是数值位;v带符号数有正数和负数之分。在计算机中,用带符号数有正数和负数之分。在计算机中,用0 0或或1 1来表示数的正负。来表示数的正负。v在

23、计算机中,一个数连同其符号在内的数值化的在计算机中,一个数连同其符号在内的数值化的表示形式称为机器数。一般用最高位表示数的符表示形式称为机器数。一般用最高位表示数的符号。而这个数本身的值称为真值。号。而这个数本身的值称为真值。v机器数可以用不同编码方法表示。常用的编码方机器数可以用不同编码方法表示。常用的编码方式有:原码、反码和补码。式有:原码、反码和补码。 第第2 2章章 计算机中的数和数制计算机中的数和数制 2.2.12.2.1带符号二进制数的表示带符号二进制数的表示1 1、原码表示法:符号、原码表示法:符号 + + 绝对值绝对值v最高位表示符号(正数用最高位表示符号(正数用0,0,负数用

24、负数用1 1)v其他位表示数值位其他位表示数值位v数数x x的原码记作的原码记作xx原原 ,如机器字长为,如机器字长为n n,则原,则原码的定义如下:码的定义如下:第第2 2章章 计算机中的数和数制计算机中的数和数制 1 1、原码、原码v例如当机器字长例如当机器字长n n8 8时,时, +0D+0D原原 0000 0000 , 0000 0000 , 0D0D原原 1000 00001000 0000 +1D +1D原原 0000 0001 , 0000 0001 , 1D1D原原 1000 00011000 0001 +45D +45D原原 0010 1101 0010 1101 , 45D

25、45D原原 1010 11011010 1101 +127D +127D原原 0111 1111 , 0111 1111 , 127D127D原原 1111 11111111 1111 0 0 的表示不惟一的表示不惟一第第2 2章章 计算机中的数和数制计算机中的数和数制 1 1、原码、原码v按照定义,设按照定义,设n n为字长,则原码能表示的整为字长,则原码能表示的整数范围是:数范围是:(2(2n-1n-11)1)+(2+(2n-1n-11)1);v例如:例如: 8 8位二进制原码表示的整数范围是位二进制原码表示的整数范围是 127D127D+127D+127D; 1616位二进制原码表示的整

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

27、 1) x 0第第2 2章章 计算机中的数和数制计算机中的数和数制 2 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反反1000 0000

28、1000 0000 0 0 的表示不惟一的表示不惟一第第2 2章章 计算机中的数和数制计算机中的数和数制 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。 第第2 2章章 计算机中的数和数制计算机中的数和数制 3 3、补码、补码

29、v补码表示法:补码表示法: 一个正数的补码和反码、原码相同;一个正数的补码和反码、原码相同; 一个负数的补码的符号位与其原码的符号一个负数的补码的符号位与其原码的符号位相同,其余位可通过将其反码数值部分位相同,其余位可通过将其反码数值部分加加1 1得到。得到。 v数数x x的补码记作的补码记作xx补补 ,如机器字长为,如机器字长为n n,则补,则补码的定义如下:码的定义如下:第第2 2章章 计算机中的数和数制计算机中的数和数制 3 3、补码、补码v例如当机器字长例如当机器字长n n8 8时,时, +0D+0D补补0000 0000 , 0000 0000 , 0D0D补补0000 0000 0

30、000 0000 +1D +1D补补0000 0001 , 0000 0001 , 1D1D补补1111 11111111 1111 +45D +45D补补0010 1101 0010 1101 , 45D45D补补1101 00111101 0011 +127D +127D补补0111 1111 , 0111 1111 , 127D127D补补1000 00011000 0001 0 0 的表示惟一的表示惟一第第2 2章章 计算机中的数和数制计算机中的数和数制 3 3、补码、补码v按照定义,设按照定义,设n n为字长,则补码能表示的整数为字长,则补码能表示的整数范围是:范围是:2 2n-1n

31、-1+(2+(2n-1n-11)1);v例如:例如: 8 8位二进制补码表示的整数范围是位二进制补码表示的整数范围是 128D128D+127D+127D; 1616位二进制补码表示的整数范围是位二进制补码表示的整数范围是 32768D32768D+32767D+32767D。 v补码比原码、反码所能表示的数的范围大,补码比原码、反码所能表示的数的范围大,数数0 0的补码只有一种表示形式,是计算机中采的补码只有一种表示形式,是计算机中采用的带符号数的编码方式。用的带符号数的编码方式。第第2 2章章 计算机中的数和数制计算机中的数和数制 2.2.22.2.2带符号二进制数的运算带符号二进制数的运

32、算1 1、补码运算规则、补码运算规则v采用补码表示的带符号数,其符号位和数值位同时参与运采用补码表示的带符号数,其符号位和数值位同时参与运算,运算结果仍然是补码;算,运算结果仍然是补码;v任何两数任何两数相加相加,无论正负,只要把它们的补码相加即可;,无论正负,只要把它们的补码相加即可;v任何两数任何两数相减相减,无论正负,只要把减数相反数的补码与被,无论正负,只要把减数相反数的补码与被减数的补码相加即可;减数的补码相加即可;v运算公式如下:运算公式如下:x + yx + y补补 xx补补 + y+ y补补 x x yy补补 xx补补 + + yy补补 从上面的公式可以看出,补码的减法运算可以

33、转换成加法从上面的公式可以看出,补码的减法运算可以转换成加法来完成的,因此,在计算机中利用加法器就可以实现补码来完成的,因此,在计算机中利用加法器就可以实现补码的加法和减法运算。的加法和减法运算。 第第2 2章章 计算机中的数和数制计算机中的数和数制 v由于计算机的字长有限,因此,所能表示的由于计算机的字长有限,因此,所能表示的数是有范围的。例如数是有范围的。例如8 8位二进制补码表示的整位二进制补码表示的整数范围是数范围是 128D128D+127D+127D;v当运算结果超过这个范围时,运算结果将出当运算结果超过这个范围时,运算结果将出错,这种情况称为错,这种情况称为溢出溢出。v产生溢出的

34、原因是数值的有效位占据了符号产生溢出的原因是数值的有效位占据了符号位。位。2 2、补码运算的溢出问题、补码运算的溢出问题第第2 2章章 计算机中的数和数制计算机中的数和数制 v由于计算机的字长有限,因此,所能表示的数是由于计算机的字长有限,因此,所能表示的数是有范围的。当运算结果超过这个范围时,运算结有范围的。当运算结果超过这个范围时,运算结果将出错,这种情况称为果将出错,这种情况称为溢出溢出。v溢出一般会造成结果出错。溢出一般会造成结果出错。v而由于运算结果超出了位数而由于运算结果超出了位数, ,最高有效位会向前最高有效位会向前产生一个产生一个进位进位,这个进位自然丢失,一般不表示,这个进位

35、自然丢失,一般不表示结果的对错;结果的对错;v产生溢出的原因是数值的有效位占据了符号位。产生溢出的原因是数值的有效位占据了符号位。2 2、补码运算的溢出问题、补码运算的溢出问题第第2 2章章 计算机中的数和数制计算机中的数和数制 v 利用符号位判别利用符号位判别若两个同号数相加,结果的符号位与之相若两个同号数相加,结果的符号位与之相反,则溢出;反,则溢出;若两个异号数相减,结果的符号位与减数若两个异号数相减,结果的符号位与减数相同,则溢出;相同,则溢出;若两个异号数相加或两个同号数相减,则若两个异号数相加或两个同号数相减,则不溢出。不溢出。v 利用运算过程中的进位产生情况判别利用运算过程中的进

36、位产生情况判别若次高位(最高数值位)和最高位(符号若次高位(最高数值位)和最高位(符号位)不同时产生进位或借位,则溢出;位)不同时产生进位或借位,则溢出;若次高位(最高数值位)和最高位(符号若次高位(最高数值位)和最高位(符号位)都产生进位或借位,则不溢出。位)都产生进位或借位,则不溢出。溢出的判别方法溢出的判别方法第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-102-10】当字长为当字长为8 8位时,计算位时,计算-64D+64D-64D+64D。溢出的判别溢出的判别v 本例中运算结果为本例中运算结果为0 0,根据定义,在,根据定义,在8 8位补码位补码的表示范围的表示范围

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

38、用符号位判别:两个正数相加,结果是负利用符号位判别:两个正数相加,结果是负数,溢出。数,溢出。v 利用进位判别:次高位向前有进位,而最高利用进位判别:次高位向前有进位,而最高位没有产生进位,溢出。位没有产生进位,溢出。第第2 2章章 计算机中的数和数制计算机中的数和数制 2.32.3二进制编码的十进制数二进制编码的十进制数2.3.1 BCD2.3.1 BCD码的编码方法码的编码方法v 在计算机内部采用二进制形式表示数,但人们习在计算机内部采用二进制形式表示数,但人们习惯使用十进制数。惯使用十进制数。v BCDBCD码,是二进制编码的十进制数的简称,是为码,是二进制编码的十进制数的简称,是为了便

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

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

41、0 5 0101 1 0001 6 0110 2 0010 7 0111 3 0011 8 1000 4 0100 9 1001第第2 2章章 计算机中的数和数制计算机中的数和数制 1 1、8421BCD8421BCD码的编码规则码的编码规则v8421BCD8421BCD码的优点:码的优点: 十进制数的每一位表示法与该数的二进制形式十进制数的每一位表示法与该数的二进制形式一样,容易识别。一样,容易识别。v8421BCD8421BCD码的缺点:码的缺点: 1010101011111111这这6 6个编码没有用到,是无意义的个编码没有用到,是无意义的编码。编码。 运算结果如果落到这运算结果如果落到

42、这6 6个编码的范围内时,需个编码的范围内时,需要经过转换后,才能得到正确的结果。要经过转换后,才能得到正确的结果。 这种转换,在这种转换,在80 x8680 x86微型计算机中,可以通过微型计算机中,可以通过十进制调整指令来实现。十进制调整指令来实现。第第2 2章章 计算机中的数和数制计算机中的数和数制 2 2、8421BCD8421BCD码的格式码的格式BCDBCD码有两种格式:码有两种格式:v压缩压缩8421BCD8421BCD码(组合码(组合8421BCD8421BCD码)码) 用用4 4位二进制数表示位二进制数表示1 1位十进制数,位十进制数,一个字节一个字节可以表示两位十进制数。可

43、以表示两位十进制数。 例如:例如:96D96D的压缩的压缩8421BCD8421BCD码表示形式是:码表示形式是: 1001 01101001 0110。v非压缩非压缩8421BCD8421BCD码(非组合码(非组合8421BCD8421BCD码)码) 用一个字节的低用一个字节的低4 4位表示位表示1 1位十进制数,高位十进制数,高4 4位任意,通常设为位任意,通常设为00000000,一个字节只表示一一个字节只表示一位十进制数。位十进制数。 例如:例如:96D96D的非压缩的非压缩8421BCD8421BCD码表示形式是:码表示形式是: 0000 1001 0000 01100000 100

44、1 0000 0110。第第2 2章章 计算机中的数和数制计算机中的数和数制 2.3.2 BCD2.3.2 BCD码的加减运算码的加减运算1 1、压缩、压缩8421BCD8421BCD码的加减运算码的加减运算v参与运算的操作数为压缩参与运算的操作数为压缩8421BCD8421BCD码;码;v结果也是压缩结果也是压缩8421BCD8421BCD码。码。【例例2-122-12】计算用压缩计算用压缩8421BCD8421BCD码表示的两个十码表示的两个十进制数进制数1616和和1818的和。的和。第一步第一步:做加法。:做加法。16D=00010110BCD16D=00010110BCD,18D=0

45、0011000BCD18D=00011000BCD。运算过程。运算过程如下:如下:第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-122-12】第二步第二步:分析上式运算结果,进行十进制调整。:分析上式运算结果,进行十进制调整。v结果分析结果分析: 16D16D18D=34D18D=34D,用压缩,用压缩8421BCD8421BCD码进行加法运算,结码进行加法运算,结果应为果应为00110100BCD00110100BCD。 但上式运算的结果是但上式运算的结果是0010 11100010 1110,其中的低位,其中的低位11101110不不是有效的压缩是有效的压缩8421BCD

46、8421BCD码。码。v原因分析原因分析: 采用压缩采用压缩8421BCD8421BCD码运算时,运算器仍然进行的是二码运算时,运算器仍然进行的是二进制数的运算,采用的进位规则不是十进制运算规进制数的运算,采用的进位规则不是十进制运算规定的逢十进一。定的逢十进一。 对应到本例中,就是个位上对应到本例中,就是个位上6 6和和8 8相加,结果是相加,结果是1414,大于大于9 9了,应该向十位有个进位(逢十进一),但是了,应该向十位有个进位(逢十进一),但是实际这一进位并没有产生。实际这一进位并没有产生。第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-122-12】v解决的办法解决

47、的办法: 将出错的那一位压缩将出错的那一位压缩8421BCD8421BCD码与码与6 6相加。相加。 相加后如果产生进位,则该进位应该加到压相加后如果产生进位,则该进位应该加到压缩缩8421BCD8421BCD码的高位。码的高位。第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-132-13】v计算用压缩计算用压缩8421BCD8421BCD码表示的两个十进制数码表示的两个十进制数3939和和9898的和。的和。解:解:39D=00111001BCD39D=00111001BCD,98D=10011000BCD98D=10011000BCD。第第2 2章章 计算机中的数和数制计算

48、机中的数和数制 【例【例2-142-14】 v计算用压缩计算用压缩8421BCD8421BCD码表示的两个十进制数码表示的两个十进制数3535和和1616的差。的差。解:解:35D=00110101BCD35D=00110101BCD,16D=00010110BCD16D=00010110BCD。 第第2 2章章 计算机中的数和数制计算机中的数和数制 压缩压缩8421BCD8421BCD数运算的十进制调整规则数运算的十进制调整规则 v 加法运算后的十进制调整规则加法运算后的十进制调整规则若加法和的个位大于若加法和的个位大于9 9或向十位有进位,则需要或向十位有进位,则需要“加加6 6调整调整”

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

50、则需要“减减6060调整调整”即,所得和要减去即,所得和要减去01100000BCD01100000BCD。第第2 2章章 计算机中的数和数制计算机中的数和数制 2 2、非压缩、非压缩8421BCD8421BCD码的加减运算码的加减运算v参与运算的操作数为非压缩参与运算的操作数为非压缩8421BCD8421BCD码;码;v结果也是非压缩结果也是非压缩8421BCD8421BCD码。码。【例例2-152-15】计算用非压缩计算用非压缩8421BCD8421BCD码表示的两个码表示的两个十进制数十进制数8 8和和7 7的和。的和。第第2 2章章 计算机中的数和数制计算机中的数和数制 【例例2-162-16】 v计算用非压缩计算用非压缩8421BCD8421BCD码表示的两个十进制数码表示的两个十进制数9

温馨提示

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

评论

0/150

提交评论