1、1 14 4 计算机中的数制和编码计算机中的数制和编码n计算机在工作过程中就是对数据的处理。计算机在工作过程中就是对数据的处理。n计算机是一个典型的数字化设备,它只能识别计算机是一个典型的数字化设备,它只能识别0和和1,所有的计算机都是以二进制数的形式进行,所有的计算机都是以二进制数的形式进行算术运算和逻辑操作的。算术运算和逻辑操作的。n一、一、计算机中的数制及转换计算机中的数制及转换 n二、二、带符号数的表示带符号数的表示 n三、三、计算机中常用的编码计算机中常用的编码 一、数制及转换一、数制及转换n1 1、计算机中的数制计算机中的数制n 二进制:0、1n 十六进制:0-9、A-Fn 十进制
2、:0-9n 分别后缀 B、H、Dn运算时分别为:n 逢2进1、逢10进1、逢16进1n三者的关系:P19 P19 表表1-41-42 2 不同数制之间的转换不同数制之间的转换n(1 1)二进制数和十六进制数)二进制数和十六进制数n 非常方便。P19表1-4n4位二进制数可用1位十六进制数表示。如:n1111111000111B=1FC7H(2 2)十六进制数转换成十进制数)十六进制数转换成十进制数n十六进制数转换为十进制数十分简单,只需将十六进制数按权展开即可。如:n1F3DH=1163+15162+3161+13160 =14096+15256+316+131n =4096+3840+48+
3、13n =7997(3 3)十进制数转换成十六进制数)十进制数转换成十六进制数n十进制整数转换为十六进制数:十进制整数转换为十六进制数:n可用除除1616取余数法取余数法,即用16不断去除待转换的十进制数,直到商等于零为止。将所得的各次余数,依倒序排列倒序排列,即可得到所转换的十六进制数。如将38947转换为十六进制数,其方法及算式如下:即38947=9823H。n十进制小数转换成十六进制小数:n采用乘16取整的方法进行。n0.7875十进制数转换为十六进制数,其方法和算式如下:可得0.7875D=0.C99H 二、带符号数的表示二、带符号数的表示n1机器数与真值n2机器数的原码、反码、补码n
4、3带符号数溢出及其判断方法1机器数与真值n在计算机中,用二进制数表示有符号数,用最高位表示符号,其余的为数值位,这样一组连同符号也编码化的二进制数称为机器数;机器数;n对于正数,最高位规定为“0”,对于负数,最高位为“1”,n机器数所代表的数值大小称为机器数的真真值。值。如:如:P21 P21 例例2 2机器数的原码、反码、补码机器数的原码、反码、补码n(1 1)原码:)原码:n对于带符号数来说,用最高位表示数的正负,其余各位表示数的绝对值,这种表示方法称为原码表示法原码表示法,即仅将符号位数字化表示为0或1,数的绝对值与符号一起编码,或者称为“符符号号-绝对值绝对值”的编码。原码表示的特点:
5、原码表示的特点:n 最高位为符号位,正数为0,负数为1;n 8位二进制原码表示数的范围是-127+127,十六位二进制原码表示数的范围是-32767+32767;n 0的原码有两种表示方法,即+0和-0,设字长为8位:n+0原=00000000Bn-0原=10000000B(2 2)反码:)反码:n正数的反码与原码相同,负数的反码符号位为1,其数值部分按位取反。n求-56H反码的过程如下:n对应的原码为1 101 0110B;按位求反后为1 010 1001B,即-56H的反码为1010 1001B。反码的特点:反码的特点:n 反码表示法中,最高位仍为符号位,正数为0,负数为1;n“0”有两种
6、表示方法:n当字长是8位时,+0反=00000000B,-0反=11111111Bn 8位二进制反码表示数的范围是-127+127。n 正数的反码与原码相同,负数的反码符号位为1,其数值部分按位取反。(3 3)补码:)补码:n在计算机内,带符号数并不是用反码表示,而是用补码表示。n例:56H-23H=56H-23H+100Hn =56H+100H-23Hn =56H+0DDHn =1 33Hn =33Hn正数的补码与反码、原码相同;负数的补码等于它的反码加1。n补码的特点:补码的特点:n 补码表示中,最高位仍为符号位,正数为0,负数为1;n 0仅有一种表示方法,即+0补=-0补;n 8位二进制
7、补码表示数的范围是-128+127,十六位二进制补码表示数的范围是-32768+32767;对于同一个数,作为8位二进制数的补码和作为16位二进制数的补码不同,这一点要特别注意。n 注意:对于8位二进制数10000000B,若为补码表示为-128补,若为原码表示-0原,若为反码表示为-127反;nP24 表1-5n从表1-5可以看出,8位二进制数,n无符号数无符号数表示范围是0255;n有符号数:有符号数:n 原码表示范围-127+127;n 反码表示范围是-127+127;n 补码表示范围是-128+127。3 3带符号数溢出及其判断方法带符号数溢出及其判断方法n如前所述,带符号数表示方法都
8、有一定的范围,对于8位的原码、反码和补码表示的范围分别为:n原码 -127+127(0FFH7FH)n反码 -127+127(80H7FH)n补码 -128+127(80H7FH)n当8位带符号数的运算结果超过以上范围时,就会出生溢出溢出。n在微型计算机中所有带符号的数都是用补码表示的。n所谓溢出所谓溢出,是指带符号数的补码加、减运算的结果超出了补码表示的范围。若发生了溢出,则带符号数的运算结果必然是错误的。(2 2)判断溢出的方法)判断溢出的方法n两种方法:n结果分析;结果分析;X=01000000B,Y=01000001BnX+Y=?n利用最高位和次高位的进位利用最高位和次高位的进位/借位
9、状态进行借位状态进行“异或异或”来判断的来判断的。n在微机中,可用多字节表示更大的数,避免产生溢出错误。四、计算机中常用的编码四、计算机中常用的编码 n目前计算机中最常用的两中编码:目前计算机中最常用的两中编码:n美国信息交换标准代码(美国信息交换标准代码(ASCIIASCII码码)n二二十进制编码(十进制编码(BCDBCD码码)。)。1 1美国信息交换标准代码(美国信息交换标准代码(ASCIIASCII码)码)nP311 P311 附录附录A An如“8”的7位ASCII码 0111000Bn 奇校验ASCII码为00111000B;n 偶校验ASCII码为10111000B;2 2、BCD
10、BCD码码n二进制编码的十进制数n09nA F非法n一个字节-8位n压缩与非压缩强调:强调:n计算机只认二进制数,并不认什么十六、十、ASCII、BCD码等n其他数的大小和性质需要人来分析n1111 1111B 多大?什么性质的数?n无符号:255n带符号:负数-1nASCII码:“DEL”键的ASCII码总结:n本章从微处理器的产生和发展开始,对微机的基本概念、硬件结构、工作原理、系统组成、应用特点等知识作了相应的概述;介绍了计算机中数据的表示方法,重点介绍了二进制数、十进指数、十六进制数的相关概念及各类数制之间相互转换的方法、无符号数和有符号数的机器内部表示、BCD码和ASCII码等。通过本章的学习,要重点掌握以下几个方面:n 微型计算机的硬件结构:CPU、存储器、I/O口、总线;n 微型计算机的软件:源程序、汇编(编译)程序、目标程序;n 计算机的数值及转换:二进制数、十进制数、十六进制数;n 带符号数的表示:原码、反码、补码;n 计算机中的常用的编码:ASCII码、BCD码。n本章是微型计算机的基础。