微机原理第一章计算机基础知识.ppt
1,第一章 计算机基础知识,1.1 数与数制1.2 十进制数与字符的编码表示1.3 二进制算术运算1.4 符号数的表示及其运算,内容提要:,2,1.1 数与数制,一、计算机中的数制:计数方法。,十进制符合人们的习惯二进制便于物理实现十六进制便于识别、书写八进制,3,1、进位计数制的一般表示,一般地,对任意一个K进制数S都可表示为,其中:Si-S的第i位数码,可以是K个符号中任何一个;n,m 整数和小数的位数;K-基数;Ki-K进制数的权,4,例:,84211(D)=8104+4 103+2 102+1 101+1 10074211Q(O)=7 84+4 83+2 82+1 81+1 8084214H=8 164+4 163+2 16 2+1 161+4 160,基分别为10、8、16。其中十六进制的数码分别为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。,计算机中最常用的是二进制。如:1101B=1 23+1 22+0 21+1 20=13使用二进制的优点:易实现、易存储、抗干扰性强、可靠性高。运算规则简单。,5,2、如何区分不同进位记数制的数字,在数字后面加一个字母进行区分:二进制:数字后面加B,如1001B八进制:数字后面加O,如1001O十进制:一般不加,如1001十六进制:数字后面加H,如1001H,在明显可以区分其记数制的情况下,可以省略数字后面的字母,6,二、各种数制之间的转换:1、各种进位制转十进制:一般采用加权法,即按权值展开为多项式的和的形式。例:101101.11B=125+024+123+122+021+120+12-1+12-2=45.75(D),7,十进制 二进制的转换:整数部分:除2取余;小数部分:乘2取整。以小数点为起点求得整数和小数的各个位。,2、十进制转二进制的方法:,8,(1)整数采用除基取余法。(S)10=(Kn-1 Kn-2 Kn-3、K1 K0)2=Kn-1*2n-1+Kn-2*2n-2+、+K1*21+K0*20 S/2=(Kn-1*2n-2+Kn-2*2n-3+、+K1)+K0/2例:将十进制数175转换为二进制数,其过 程如下:,9,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=10101111B 169=?10101001B,10,(2)小数采用乘基取整法:例:0.6252=1.25 K-1=1 0.25 2=0.50 K-2=0 0.50 2=1.00 K-3=1 所以 0.625=(0.101)2注意:如果乘积小数始终不为0,则二进制 小数有无穷多位。0.71875=(0.10111)2(3)十进制转其他任意进制:与 十转二方 法类似。但可以经二进制中转。,11,(4)二进制、八进制、十六进制之间互转:例:将 101011B转八进制和十六进制。(101,011)2=(53)8(0010,1011)2=2BH(7 1 2.4 6)8=?(111 001 010.100 110)2 1,1101,0100,1011,0111.0101,1110,1010)2=?(1 D 4 B 7.5 E A)16,12,1.2 十进制数与字符的编码表示,一、BCD码 转换十进制数为其等值的二进制数称之 为编码。前面所提到的二进制数称为 纯二进制码。微处理器只能识别用高低 电平表示的0或1。,13,表1.1 BCD码与其它数制的对应关系,14,15,根据上述说明,一个十进制数,能够很方便 地用BCD码来表示。例如,十进制数834用BCD码表示为(834)10=(1000 0011 0100)BCD 只要熟记十进制数09与BCD码的对应关系 则它们之间的相互转换是十分方便的。例:(0110 1001 0101.0010 0111 1001)BCD=(695.279)10,16,二、ASCII码 ASCII码是美国标准信息交换码的简称,现在为各国所广泛采用。通常,ASCII码由7位二进制编码来表示,用于微处理机与它的外部设备之间进行数据交换以及通过无线或有线进行数据传送。,17,代表字符或控制功能的ASCII码是由一个4位组和一个3位组构成的,形成7位二进制编码,其格式为,3位组,4位组,18,根据ASCII码的构成格式,可以很方便地从附录A中ASCII表查出每一个字符或特殊控制功能的编码。例:大写英文字母A 从表中查出其3位组为(100)2,4位组为(0001)2,故构成字母A的ASCII编码为(1000001)2或(41)16。,19,1.3 二进制算术运算,包括:加法运算 减法运算 乘法运算 除法运算,20,一、二进制加法 二进制加法与十进制加法相类似,所不同的是,二进制加法中是“逢二进一”,其法则为 0+0=0 1+0=1 0+1=1 1+1=0 并进位,21,例:两个二进制数相加:10110101+10001110,101000011,22,二、二进制减法 在二进制减法中,同样有如下法则:0-0=0 1-0=1 1-1=0 0-1=1 有借位 当不够减时需要借位,高位的1等于下一位的2,即“借一当二”。,23,例:两个二进制数相减:10110100-01010111,01011101,24,三、二进制乘法 二进制乘法与十进制乘法是一样的。但因为二进制数只由0和1构成,因此,二进制乘法更简单。其法则如下:00=0 10=0 01=0 11=1,25,例:二进制数1101.1与101.1相乘:1101.1 被乘数(13.5)10 101.1 乘数(5.5)10,110 11 1101 1 00000+11011,1001010.01 乘积(74.25)10,26,四、二进制除法 二进制除法是乘法的逆运算,其方法与十进制除法是一样的,而且二进制数仅由0,1构成,做起来更简单。例:求二进制数100111除以110的商。,27,110.1 110 100111 110 111 110 110 110 0,28,五、无符号数的表示范围,一个n位的无符号二进制数X,其表示范围为 0 X 2n-1若运算结果超出这个范围,则产生溢出。(或者说运算结果超出n位,则产生溢出)判别方法:运算时,当最高位向更高位有进位(或 借位)时则产生溢出。,29,1.4 符号数的表示及其运算,一、机器数和真值:在计算机中连同符号位一起数字化了的数称为机器数,机器数的数值为真值。通常数码最高位为符号位,0表示“+”,1表示“-”。二、符号数的表示方法 表示一个带符号的二进制数有3种方法。,30,1.原码:最高位为符号位,后面各位为其数 值。8位原码表示范围:1111111101111111 即(-127+127)8位无符号数可以表示范围:(0255)0的原码有两种形式。,31,真值,X=+18=+0010010,X=-18=-0010010,X=+0=+0000000,X=-0=-0000000,符号,原码,X原,=00010010,X原,=10010010,X原,X原,=00000000,=10000000,符号位,32,2、反码:在计算机的早期,曾采用反码法来表示带符号的数。正数的反码与原码相同,负数的反码符号位保持不变,其余各位取反。例:+127=(01111111)原=(01111111)反-127=(11111111)原=(10000000)反 注意:X原=X反反,33,n位反码表示数值的范围:-(2n-1-1)+(2n-1-1)8位反码表示范围:10000111,即-127+127。0的反码有两种形式。,34,真值,X=+18=+0010010,X=-18=-0010010,X=+0=+0000000,X=-0=-0000000,符号,反码,X反,=00010010,X反,=11101101,X反,X反,=00000000,=11111111,符号位,35,3、补码:补码是计算机中最常用的数据表 示形式。X补=M+X 其中模M是指一个计数装置的计数范围。其大小等于以进位计数制基数为底,以位数为指数的幂。凡是用器件进行的运算都是有模运算,运算结果超过模的部分被运算器自动丢弃。,36,正数的补码为其本身,负数的补码为保持符号位不变,其余位按位取反,然后加1。即X补=M|X|。例:计算机字长为八位,设机器数的真值为 X=(-1011011)。求其补码。解:8位二进制数的模为28 X补=(100000000)-(1011011)=10100101 X反=10100100,37,对补码应注意以下几个问题:符号位与原码相同。补码中只有一种0的表示,即00000000。补码中10000000表示-128。所以补码表 示范围为-128至+127。,38,真值,X=+18=+0010010,X=-18=-0010010,X=+0=+0000000,X=-0=-0000000,符号,补码,X补,=00010010,X补,=11101110,X补,X补,=00000000,=00000000,符号位,39,三、数的定点和浮点表示法:1、定点表示法:定点整数和定点小数。2、浮点表示法:,定点整数,X0 X1 X2 X3、Xn,E0 E1 E2、M0 M1 M2、Mm,40,数N被分为阶码(指数)和尾数(数值)两部分。我们把用阶码和尾数表示的数叫做浮点数,这种表示数的方法称为浮点表示法。阶码采用定点整数(补码),尾数采用定点小数(原码或补码),最高位均为符号位。即:N=2EM,这样,固定字长的存储单元的表示范围和分辨率得以提高。为了尽可能保留有效数字的位数,浮点数通常采用规格化表示法。,41,规格化浮点数:保证小数点后第一位不为0,以保证最大的精度。例:写出-0.0001011的规格化浮点数形式,阶码取2位补码,阶符占一位,尾数取4位补码,尾符占一位,共8位。解:-0.0001011=2-11(-0.1011)其在计算机中的存放方式如下:,1 0 1 1 0 1 0 1,42,四、补码的加减法运算:1、补码的定点加法:(1)定点小数加法 X补+Y补=X+Y补 运算时符号位取两位,正数取00,负数取11,目的是判断计算结果的溢出。例1:X=0.110001,Y=0.001001 求 X+Y补。,43,解:X补=00.110001,Y补=00.001001 X+Y补=00.111010例2:X=0.110001,Y=-0.001001 求X+Y补。(2)溢出与判断:定点小数的表示范围:1X-1 结果超出此范围即溢出。例3:00.10110111.001011 00.10010111.010011 01.01001010.011110 上溢 下溢,44,另一种判断方法:采用单符号位令 V=D7CD6C V=1,有溢出;V=0,无溢出。(3)浮点数加法 对阶 尾数相加 溢出由阶码决定。规格化,45,2、减法运算:在微处理器中,一般都不设置专门的减法电路。遇到两个数相减时,处理器就自动地将减数取补,而后将被减数和减数的补码相加来完成减法运算。X-Y补=X补+-Y补例:64-10=?,46,计算机中实现过程 11110101 1 11110110 01000000 00110110,01000000B-00001010B,47,作业:1、将下列十进制数转换为二进制数和十六进制数。二进制取小数点后按0舍1入方法取8位。(1)1024(2)0.2(3)18.6922、已知X原=10011011是定点纯小数,写出X的规格化浮点数形式,设其阶码是4位补码,尾数是8位原码(含符号位)。3、已知X补,Y补;求 X+Y补,判断是否有溢 出,确定是上溢还是下溢。(1)X补=0.11011 Y补=0.10111(2)X补=0.10101 Y补=0.10011(3)X补=0.11011 Y补=1.01101,