资源描述
,*,第1章 预备知识,1.1 数与数制,1.2 十进制数与字符的编码表示,1.3 二进制算术运算,1.4 符号数的表示及其运算,第,一,章 预备知识,1.1 数与数制,1.1.1 十进制记数法,在十进制记数中,用0,1,2,9这10个符号来表示数量,无论多大的数,都,是用这,10,个符号的组合来表示的。,例如,十进制数3758可用上面的法则来表示:,(3758),10,=310,3,+710,2,+510,1,+810,0,根据同样的法则,也可以表示十进制小数,小数点的右边各位的权为10,-1,10,-2,10,-3,。例如,十进制数275.368可以用上述法则写成:,(275.368),10,=210,2,+710,1,+510,0,+310,-1,+6,10,-2,+810,-3,1.1.2 二进制记数法,二进制记数法用来表示数量的符号只有两个,就是0和1。二进制数中的任何一个0或,1称为比特(,bit)。,例如,二进制数110101可以表示为,(110101),2,=12,5,+12,4,+02,3,+12,2,+02,1,+12,0,1.1.3 二进制数与十进制数的相互转换,1.二进制数转换成十进制数,如上所述,只要将二进制数的每一位乘上它的权然后加起来就可以求得二进制数的十进制数值。例如,二进制数101101.11换算成十进制数为,(101101.11),2,=12,5,+02,4,+12,3,+12,2,+02,1,=,+1,2,0,+1,2,-1,+1,2,-2,=(45.75),10,2.十进制数转换成二进制数,十进制数转换为二进制数的方法分两步进行。,例如,欲将十进制数175转换为二进制数,其过程如下:,1752=87 余数为 1,872=43 1,432=21 1,212=10 1,102=5 0,52=2 1,22=1 0,12=0 1,得到结果:(175),10,=(10101111),2,。,例如,将十进制小数0.71875转换成二进制小数,其过程如下:,0.718752=1.437 5 整数部分 1,0.43752=0.875 0,0.8752=1.75 1,0.752=1.5 1,0.52=1.0 1,于是,得到结果为:(0.71875),10,=(0.10111),2,。,综上所述,一个十进制整数的二进制转换方法就是“除2取余”;而一个十进制小数的二进制转换方法就是“乘2取整”。若一个十进制数既包含整数部分又包含小数部分,它的二进制转换就是将它的整数部分和小数部分用上述方法分别进行转换,最后将转换好的两部分结合在一起形成要转换的二进制数,例如,,(175.71875),10,=(10101111.10111),2,1.1.4 八进制记数法,例如,八进制数372.01,根据各位的权不同可以写成:,(372.01),8,=38,2,+78,1,+28,0,+08,-1,+18,-2,将上式中各位与其权相乘而后加到一起,就可以得到八进制数372.01的十进制数为,(372.01),8,=(250.015625),10,这也表明了八进制数转换为十进制数的过程。,十进制数转换为八进制数的方法是:对于十进制整数采用“除8取余”的方法转换为八进制整数;对于十进制小数则采用“乘8取整”的方法转换为八进制小数。例如,将十进制数194.46875转换成八进制数时,应将整数部分和小数部分分别转换,最后再合到一起就得到要转换的八进制数:,1948=24 余数为 2 0.468758=3.75 整数部分 3248=3 0 0.758=6.0 6,38=0 3,所以,,(194.46875),10,=(302.36),8,二进制数转换成八进制数的方法就是从小数点起,把二进制数每三位分成一组,然后写出每一组的等值八进制数,顺序排列起来就得到所要求的八进制数。例如,将二进制数11101111010.1011转换为八进制数:,(011 101 111 010 .101 100),2,(3 5 7 2 .5 4),8,依据同样的思想,即一位八进制数用三位二进制数表示,就可以直接将八进制数转换成二进制数。例如,将八进制数712.46转换为二进制数,其过程如下:,(7 1 2 .4 6),8,(111 001 010 .100 110),2,1.1.5 十六进制记数法,例如,十六进制数,E5D7.A3,可以表示为,(,E5D7.A3),16,=E16,3,+516,2,+D16,1,+716,0,+A16,-1,+316,-2,整数部分:,4763216=2977 余数 016进制数 0,297716=186 1 1,18616=11 10,A,1116=0 11 B,小数部分:,0.7812516=12.5 整数 12,C,0.516=8.0 8 8,最后得到(47632.78125),10,=(,BA10.C8),16,。,由于一位十六进制数可以用四位二进制数来表示,因此二进制数与十六进制数的相互转换就比较容易。二进制数到十六进制数的转换是由小数点开始,每四位二进制数为一组,,将每一组用相应的一位十六进制数来表示,即可得到正确的十六进制数,例如:,(1 1101 0100 1011 0111 .0101 1110 1010),2,(1,D 4 B 7 .5 E A),16,1.2 十进制数与字符的编码表示,1.2.1,BCD,码,转换十进制数为其等值的二进制数称之为编码。前面所提到的二进制数称为纯二进制码。,微处理器只能识别用高低电平表示的0或1。,表1.1,BCD,码与其它数制的对应关系,根据上述说明,一个十进制数,能够很方便地用,BCD,码来表示。例如,十进制数834用,BCD,码表示为,(834),10,=(1000 0011 0100),BCD,只要熟记十进制数09与,BCD,码的对应关系,则它们之间的相互转换是十分方便的。例如:,(0110 1001 0101.0010 0111 1001),BCD,=(695.279),10,1.2.2,ASCII,码,ASCII,码是美国标准信息交换码的简称,现在为各国所广泛采用。,通常,,ASCII,码由7位二进制编码来表示,用于微处理机与它的外部设备之间进行数据交,换以及通过无线或有线进行数据传送。,代表上述字符或控制功能的,ASCII,码是由一个4位组和一个3位组构成的,形成7位二,进制编码,其格式为,6,5,4,3,2,1,0,4位组,3位组,根据,ASCII,码的构成格式,可以很方便地从附录,A,中,ASCII,表查出每一个字符或特殊控制功能的编码。例如,大写英文字母,A,,从表中查出其3位组为(100),2,4位组为(0001),2,,故构成字母,A,的,ASCII,编码为(1000001),2,或(41),16,。,1.3 二进制算术运算,1.3.1 二进制加法,二进制加法与十进制加法相类似,所不同的是,二进制加法中是“逢二进一”,其法则为,0+0=0,1+0=1,0+1=1,1+1=0 并进位,例如,两个二进制数相加:,10110101,+10001110,101000011,1.3.2 二进制减法,在二进制减法中,同样有如下法则:,0-0=0,1-0=1,1-1=0,0-1=1 有借位,当不够减时需要借位,高位的1等于下一位的2,即“借一当二”。例如,两个二进制数相减:,10110100,-01010111,01011101,1.3.3 二进制乘法,二进制乘法与十进制乘法是一样的。但因为二进制数只由0和1构成,因此,二进制乘法更简单。其法则如下:,00=0,10=0,01=0,11=1,例如,二进制数1101.1与101.1相乘:,1101.1 被乘数(13.5),10,101.1 乘数(5.5),10,11011,11011,00000,+11011,1001010.01,乘积 (74.25),10,再看下面的例子:(1011),2,(1101),2,。,1011 被乘数(11),10,1101 乘数(13),10,1011,0000,1011,+1011,10001111,乘积(143),10,1.3.4 二进制除法,二进制除法是乘法的逆运算,其方法与十进制除法是一样的,而且二进制数仅由0,1,构成,做起来更简单。例如,求二进制数100111除以110的商的方法如下:,1 10.1,110 100111,110,111,110,110,110,0,1.4 符号数的表示及其运算,1.4.1 符号数的表示方法,表示一个带符号的二进制数有3种方法。,1.原码法,例如,8位二进制符号数(+45),10,和(-45),10,,可以如,下写出:,(+45),10,=(0 0101101),2,符号 位数值,(-45),10,=(1 0101101),2,符号位 数值,2.反码法,在计算机的早期,曾采用反码法来表示带符号的数。对于正数,其反码与其原码相同。,例如:,(+45),10,=(00101101),2,也就是说正数用符号位与数值凑到一起来表示。,对于负数,用相应正数的原码各位取反来表示,包括将符号位取反,取反的含义就是将0变为1,将1变为0。例如,(-45),10,的反码表示就是将上面(+45),10,的二进制数各位取反:,(-45),10,=(11010010),2,同样,可以写出如下几个数的反码表示,以便读者对照:,(+4),10,=(00000100),2,(-4),10,=(11111011),2,(+7),10,=(00000111),2,(-7),10,=(11111000),2,(+122),10,=(01111010),2,(-122),10,=(10000101),2,3.补码法,在微处理机中,符号数是用补码(对2的补码)来表示的。用补码法表示带符号数的法则是:正数的表示方法与原码法和反码法一样;负数的表示方法为该负数的反码表示加1。例如,(+4),10,的补码表示为(00000100),2,,而(-4),10,用补码表示时,可先求其反码表示(11111011),2,,而后再在其最低位加1,变为(11111100),2,。这就是(-4),10,的补码表示,即,(-4),10,=(11111100),2,。,同样,我们把前面提到的几个数的补码表示列在下面供读者参考:,(+7),10,=(00000111),2,(-7),10,=(11111001),2,(+122),10,=(01111010),2,(-122),10,=(10000110),2,1.4.2 补码的运算,例如,有两个二进制数10000100和00001110,当规定它们是不带符号的数时,则它们,分别表示,(132),10,和,(14),10,。将这两个二进制数相加:,10000100,+00001110,10010010,在微处理器中,一般都不设置专门的减法电路。遇到两个数相减时,处理器就自动地将减数取补,而后将被减数和减数的补码相加来完成减法运算。例如,(69),10,(26),10,=?可以写成(69),10,+(26),10,。利用(69),10,的原码和(26),10,的补码相加,即可以得到正确的结果。读者可以自己进行验证。,例如,两个带符号的数(01000001),2,(十进制数+65)与(01000011),2,(十进制数+67)相,加:,01000001,+01000011,10000100,再来看两个负数(10001000),2,和(11101110),2,的相加情况。,10001000,+11101110,01110110,1,此外,在微处理机中还会遇到不带符号数的运算。例如,两个无符号数(11111101),2,和(00000011),2,相加:,11111101,+00000011,00000000,1,1.4.3 数的定点表示和浮点表示,1.数的定点表示法,当小数点固定在最高有效位的前面时,定点数为纯小数,其格式为:,符号,MSB,LSB,小
展开阅读全文