《微型计算机原理与接口技术 数制》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术 数制(20页珍藏版)》请在金锄头文库上搜索。
1、1 计算机中的数计算机中的数字电路具有两种不同的稳定状态且能相互转换,即“0”和“1”两种状态。计算机处理的一切信息均用二进制数表示,但是二进制数书写起来太长,所以微型计算机中的二进制数都采用十六进制来缩写。十六进制数用09、AF等16个数码表示十进制数015。为了区别十进制数、二进制数及十六进制数3种数制,在数的后面加一个字母以进行区别。用B(binary)表示二进制数制;D(decimal)或不带字母表示十进制数制;H(hexadecimal)表示十六进制数制。表0-1 不同进位记数制对照表l二进制数和十六进制数间的相互转换将二进制数从右(最低位)向左每4位为1组分 组,若最后一组不足4位
2、,则在其左边添加0,以 凑成4位,每组用1位十六进制数表示。如: 1111111000111B1 1111 1100 0111B 0001 1111 1100 0111B1FC7H十六进制数转换二进制数,只需用4位二进制数代 替1位十六进制数即可。如:3AB9H=0011 1010 1011 1001Bl十六进制数和十进制数间的相互转换将十六进制数按权展开相加,如: 1F3DH=163116215161316013=4096125615163113=409638404813=7997 十进制整数转换为十六进制数可用出16取余法, 即用16不断地去除待转换的十进制数,直至商等 于0为止。将所得的
3、各次余数,依倒叙排列,即可 得到所转换的十六进制数。如将38947转换为十六 进制数,其方法及算式如下: 即38947=9823H2 计算机中数的几个概念1.机器数与真值l机器数:机器中数的表示形式,它将数的 正、负符号和数值部分一起进行二进制编 码,其位数通常为8的整数倍。l真值:机器数所代表的实际数值的正负和 大小,是人们习惯表示的数。3 计算机中的有符号数的表示有符号数有原码、反码和补码三种表示法。1.原码数值部分用其绝对值,正数的符号位用“0”表示,负数的符号位用“1”表示。如:X1=5 X1原=00000101BX2=-5 X2原=10000101B符号位原码表示简单易懂,而且与真值
4、的转换方便。但若是两个异号数相加,或两个同号数相减,就要做减法。为了把减运算转换为加运算,从而简化计算机的结构,就引进了反码和补码。(2)反码正数的反码与原码相同;负数反码:符号位不 变 ,数值部分按位取反。例 求8位反码机器数:x1= +4 x1原= 00000100B=x1反 04Hx2= -4 x2原= 10000100B x2反= 11111011B = FBH 取反(3)补码正数的补码与原码相同;负数补码为其反码加1。例:求 8位补码机器数:x1=+4: x1原=x1反=x1补= 00000100=04Hx2= - 4: x2原 = 10000100 x2反 = 11111011 x
5、2补补 = x2反+1= 1111100=FCH 快速求法:将负数原码的最前面的1和最后一个1之间的每一位取反。例如x=-4: x原 = 10000100 x补 = 11111100=FCH取反 两数互补是针对一定的“模”而言,“模”即计数系统的过量程回零值,例如时钟以12为模(12点也称0点),4和8互补,一位十进制数3和7互补(因为3710,个位回零,模为10110),两位十进制数35和65互补(因为3567100,十进制数两位回零,模为102100),而对于8位二进制数,模为28100000000B=100H,同理16位二进制数,模为21610000H由此得出求补的通用方法:一个数的补数
6、模该数,这里补数是对任意的数而言,包括正、负数。而补码是针对符号机器数而言。取反设有原码机器数X,X0, X补=X原当 X0, X补= 模-X例如对于八位二进制数:x1=+4: x1补= 00000100=04H;x2= - 4: x2补 = 100H-4=FCH对于16二进制位数:x2=+4: x2补= 0004H;x2= -4: x2补 = 10000H-4=FFFCH几点说明: 根据两数互为补的原理,对补码求补码就可以得到其 原码,将原码的符号位变为正、负号,即是它的真值例如求补码数FAH的真值 。因为FAH为负数求补码 FAH补86H=-6 例如求补码数78H的真值 。因为78H为正数
7、求补码 78H补78H=+120 一个用补码表示的机器数,若最高位为0,则其余几 位即为此数的绝对值;若最高位为1,其余几位不是 此数的绝对值,必须把该数求补(按位取反(包括符 号位)加1),才得到它的绝对值。如:X=-15 -15补 F1H11110001B 求补得00001110100001111B=15 当数采用补码表示时,就可以把减法转换为加法。例1:64-10=64+(-10)=5464补=40H=0100 0000B10补=0AH=0000 1010B-10补=1111 0110B做减法运算过程: 用补码相加过程结果相同,其真值为36H(=54)。由于数的八位限制,最高位的进 位是
8、自然丢失的(再计算机中。进位被存放在进位标志CY中的。)用补码表示后,减法均可以用补码相加完成。因此,在微机中,凡 是符号数一律是用补码表示的。用加法器完成加、减运算,用加法 器和移位寄存器完成乘、除运算,简化计算机硬件结构。例2: 34-68=34+(-68)-3434=22H=0010 0010B68=44H=0100 0100B-68补=1011 1100B做减运算过程: 用补码相加过程:结果相同。因为符号位为1,对其求补,得其真值:-00100010B,即为-34(-22H)。由上面两个例子还可以看出,1)用补码相加完成两数相减,相减若无借位,化为补码相加就会有进位;相减若有借位,化作
9、补码相加就不会有进位。2)补码运算后的结果为补码,需再次求补才能得到运算结果的真值。 表0-2 BCD编码表0.2.6 BCD码的运算BCD码运算应该得到BCD码结果,由于计算机是按二进制运算,结果不为BCD码,因此要进行十进制调整。调整方法为:当计算结果有非BCD码或产生进位/借位时,加法进行 +6、减法进行 -6 调整运算。例:计算BCD码 78+69=?0111 1000 78H+ 0110 1001 + 69H 1110 0001 E1H不调整,结果为二进制+ 0110 0110 + 66H调整, 高4位产生非BCD码+6,和低4位有半进位+61 0100 0111 147 调整结果:
10、147 (带进位一起)为十进制结果例:计算BCD码 38-29=?0011 1000 38H - 0010 1001 - 29H0000 1111 0FH- 0000 0110 - 06 低4位有半借位-6调整 高4位未产生非BCD且无借位不调整0000 1001 9 结果:9在计算机中,有专门的调整指令完成调整操作。 0.2.7 ASCII码 表-3 常用字符的ASCII码)美国标准信息交换码ASCII码,用8位二进制编码表示字符,用于计算机与计算机、计算机与外设之间传递信息,每一个符号都有对应的ASCII码,常用数字和字母ASCII码如表1-所列,在程序中,字符可用ASCII码表示,也可以
11、用加引号的字符表示,例如字符4,可以用34H表示,也可以用4表示,此时,它只有符号的意义,而无数量的概念。表-3 常用字符的ASCII码)4 小 结1了解计算机的系统结构,明确单片机是微机的一种。2计算机的基本数制是二进制,所有的信息都是以二进 制数的形式存放,为方便阅读,以十六进制表示,对 于二、十、十六几种进制之间的转换要求十分熟练。 3计算机中的有符号数一律以补码表示,补码、原码。 真值之间的转换要求十分熟练。 4计算机中的计算一律为二进制运算,符号位也参与运 算,运算中会产生进位和溢出,应明确概念,掌握判 断方法 5编码是用一组特定的数码表示一定的字符,计算机常 用的编码有BCD码和ASCII码,应记住常用的字符编 码。 特别提出的是,计算机只识别0 和1,是有符号数还是无符号数、是补码还是原码、是BCD码、ASCII码还是一般的二进制数计算机是不能识别的,完全是人的认定,人根据不同的认定作不同的分析和处理。例如FFH 作为无符号,它代表255,作为有符号原码,它代表127,作为有符号补码,它代表1;又如32H,视作ASCII码它是字符2, 视作BCD码,它是十进制数32,视作二进制数它是50这就是根据不同的认定作不同的分析,编程作不同的处理,如:认定是BCD码,运算后加调整指令,如果认定不是BCD码,而是一般的二进制数,运算后不加调整指令。