(精品)第2章微型计算机应用基础.ppt
第第2章章 微型计算机应用基础微型计算机应用基础2-1、数和数制、数和数制2-2、带符号数在计算机中的表示、带符号数在计算机中的表示2-3、二进制的运算、二进制的运算 2-4、实数的表示实数的表示定点数和浮点数定点数和浮点数2-5、字符编码字符编码 2-1数和数制数和数制 计算机就是一台信息处理机器,对信息进行算计算机就是一台信息处理机器,对信息进行算术或逻辑处理。术或逻辑处理。信息分为两大类:信息分为两大类:数值数值和和非数值非数值,均以二进,均以二进制数形式表示。制数形式表示。在键盘上输入的在键盘上输入的十进制数字和符号命令十进制数字和符号命令,微,微型计算机都必须先把它们转换成型计算机都必须先把它们转换成二进制形式二进制形式进行进行识别、运算和处理,然后再把运算结果还原成识别、运算和处理,然后再把运算结果还原成十十进制数字和符号进制数字和符号在在CRTCRT上显示出来或用打印机打上显示出来或用打印机打印出来。印出来。十进制Decimal二进制Binary十六进制Hexadecimal元素0,1,2,3,4,5,6,7,8,90,10,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组数123.45(D)101.01B2A.BH,0CE2.3DH科学表示1102+2101+3100+410-1+510-2 122+021+120+02-1+12-22161+10160+1116-1 二、数制之间转换二、数制之间转换102整数:整数:102,除,除2取余,直到商为取余,直到商为0。小数:小数:102,乘,乘2取整,直到要求精度取整,直到要求精度混合小数:混合小数:102,整数小数分别转换,然后组合起来。,整数小数分别转换,然后组合起来。一、数制表示法一、数制表示法210 用公式展开法用公式展开法三、二进制数的运算数学和逻辑运算(自学)三、二进制数的运算数学和逻辑运算(自学)在计算机中,将一个数连同其符号用二进制数来表示,这样的二进制数称为机器数机器数。机器数所表示的值为该机器数的“真值真值”机器数的规定机器数的规定机器数是有特定的位数的二进制数,它的位数就是该机器的CPU的机器字长。在机器数中,最高有效位是符号位符号位,其余的各位是数值位数值位。符号位规定0表示正数,1表示负数。一、一、机器数与真值机器数与真值2-22-2带符号数的表示带符号数的表示二、编码方法二、编码方法整数的表示整数的表示1.原码原码编码方法示例(+73)=01001001B,(+73)=0000000001001001B(-73)=11001001B,(-73)=1000000001001001B(+0)=00000000B(-0)=10000000B特点范围:字节-127+127;字型-32767+32767唯一性:不唯一,存在-0和+0之分,(+X)+(-X)!=0。负数的原码:仅对其正数的符号位取反。0/10/10/10/10/10/1数的绝对值符号:0正,1负2.反码反码编码方法示例+73=01001001B,+73=0000000001001001B-73=10110110B,-73=1111111110110110B+0 =00000000B-0 =11111111B特点范围:字节-127+127;字型-32767+32767唯一性:不唯一,存在-0和+0之分,(+X)+(-X)!=0。负数的反码:对其正数连同符号位一起取反。0/10/10/10/10/10/1正数取其本身,负数按位取反符号:0正,1负3.补码补码编码方法示例+73=01001001B,+73=0000000001001001B-73=10110111B,-73=1111111110110111B+0 =00000000B-0 =11111111B+1=00000000B=+0特点范围:字节-128+127;字型-32768+32767唯一性:唯一。而且只有补码中(+X)+(-X)=0负数的补码:对其正数连同符号位一起求补。0/10/10/10/10/10/1符号:0正,1负正数取其本身;负数求补:按位取反加1三、机器数转换真值三、机器数转换真值1 1 原码转换为真值原码转换为真值符号位决定正负,其余各位按权展开求和2 2 反码转换为真值反码转换为真值 先求出反码对应的原码,再按照原码转换原则转换为真值的方法求出真值。正数的原码就是反码本身;负数的原码是在反码的基础上,符号位不变,数值按符号位不变,数值按位取反。位取反。Y原原=Y反反反反例:Y反=11100101B Y原=Y反反=10011010B Y=-263 3 补码转换为真值补码转换为真值先求出补码对应的原码。正数的原码与补码相同负数的原码是在补码的基础上再次求补。即 XX原原=X=X补补 补补例:X补=11100101B X原=X补补=10011011B X=-27真值、原码、反码、补码四者之间的相互转换关系!真值、原码、反码、补码四者之间的相互转换关系!例:-12的原码、反码、补码?已知Y补=10010011,求真值2-32-3、二进制数的运算、二进制数的运算1.运算特点运算特点在计算机中,为了提高计算速度、合理分配内在计算机中,为了提高计算速度、合理分配内存和使用寄存器,参与运算的所有数(变量)都必存和使用寄存器,参与运算的所有数(变量)都必须事先规定字长和类型。而且,须事先规定字长和类型。而且,参与运算的两个数参与运算的两个数必须具有相同的字长和类型。必须具有相同的字长和类型。(C语言数据类型定义)字长字长:字节、字、双字、四字:字节、字、双字、四字字长一定,数的范围就有限。如果运算结果超字长一定,数的范围就有限。如果运算结果超出这个范围,就会产生溢出,造成结果错误。出这个范围,就会产生溢出,造成结果错误。类型:自然数、整数、实数类型:自然数、整数、实数在早期微处理器中,只有自然数和整数运算指在早期微处理器中,只有自然数和整数运算指令,实数运算是靠子程序来实现的。令,实数运算是靠子程序来实现的。以C语言程序为例例1:超出范围Main()unsignedcharx,y,z;x=123;y=67;z=x*y;Printf(“%d”,z);运算结果:运算结果:49运算结果的来历:123=01111011B 67=01000011B123*67=8241=2031H即123*67=0010000000110001B而00110001B=49以C语言程序为例例2:类型不符Main()unsignedcharx,y,z;x=-12;y=7;z=x*y;Printf(“%d”,z);运算结果:运算结果:172运算结果的来历:-12=11110100B 7=00000111B-12*7=-84 如果将11110100B看作无符号数,则11110100B=244244*7=1708=06ACH=0000011010101100B而10101100B=1722.运算标志运算标志在十进制数运算中,有在十进制数运算中,有进位进位(借位借位)的概念,在)的概念,在计算机中,还存在计算机中,还存在溢出溢出。进位进位(借位):两个二进制数加(减)法运算,最(借位):两个二进制数加(减)法运算,最高位出现的进位(借位)现象。高位出现的进位(借位)现象。在多字节数加(减)法中,低位字节向高位字节在多字节数加(减)法中,低位字节向高位字节的进(借)位是必须考虑的。因此,的进(借)位是必须考虑的。因此,在计算机中,都在计算机中,都设有一个位存储单元来保留进(借)位,称作进位标设有一个位存储单元来保留进(借)位,称作进位标志志(CFCarryFlag)。)。溢出溢出:溢出主要是针对补码运算而言的。当两个补:溢出主要是针对补码运算而言的。当两个补码数的运算结果超出字长所能表示的范围时,运算结码数的运算结果超出字长所能表示的范围时,运算结果将出错,不仅数值不对,而且性质(正果将出错,不仅数值不对,而且性质(正/负)也不负)也不对。对。在计算机中,也设有一个位存储单元来保留溢出在计算机中,也设有一个位存储单元来保留溢出位,称作溢出标志(位,称作溢出标志(OFOverFlag)。)。3.补码运算补码运算在计算机中,自然数的运算规则与十进制数是相在计算机中,自然数的运算规则与十进制数是相同的。对于整数,只要采用补码,也具有类似的规则:同的。对于整数,只要采用补码,也具有类似的规则:X+Y补补=X补补+Y补补X-Y补补=X补补+-Y补补=X补补-Y补补采用补码运算后,利用一个加法器既可以实现自采用补码运算后,利用一个加法器既可以实现自然数和整数的加法运算,也可以实现减法运算,从而然数和整数的加法运算,也可以实现减法运算,从而使微处理器的逻辑结构大为简化。使微处理器的逻辑结构大为简化。采用补码做加法时,应注意:采用补码做加法时,应注意:(1)把符号位和数据位一同参与运算,结果也是补把符号位和数据位一同参与运算,结果也是补码。码。(2)符号位相加后,若有进位,则把进位舍去。符号位相加后,若有进位,则把进位舍去。例如:已知例如:已知X=+33,Y=-15,求求X+Y=?解:解:X补补=00100001B,Y补补=11110001B00100001=X补补+11110001=Y补补自然丢失自然丢失(1)00010010=X+Y补补X+Y补补=00010010B=X+Y原原X+Y=18例如:已知例如:已知X=-33,Y=+15,求求X-Y=?解:解:X补补=11011111B,-Y补补=11110001B11011111=X补补+11110001=-Y补补自然丢失自然丢失(1)11010000=X-Y补补X-Y补补=11010000BX-Y原原=10110000BX-Y=-484.溢出判别溢出判别溢出意味着计算结果是错误的,是由于字长限制所溢出意味着计算结果是错误的,是由于字长限制所致致。因此,计算结束后,判断是否发生溢出是非常因此,计算结束后,判断是否发生溢出是非常重要的。计算机运行中会自动判别是否溢出,并给重要的。计算机运行中会自动判别是否溢出,并给出相应标志出相应标志溢出标志溢出标志OF。人可以根据自然结果人可以根据自然结果来判别,譬如:来判别,譬如:8位数计算:位数计算:(120+30)其结果显然会溢出,)其结果显然会溢出,因为其结果因为其结果+150已超出已超出8位补码数的范围(位补码数的范围(-128+127););16位数计算:位数计算:(123-12345)其结果不会溢出,)其结果不会溢出,因为其结果(因为其结果(-12222)没有超出)没有超出16位补码数的位补码数的范围(范围(-32768+32767)。)。溢出针对的数是有符号数的运算,而有符号数采溢出针对的数是有符号数的运算,而有符号数采用的是补码运算用的是补码运算计算机采用双高位判别法计算机采用双高位判别法。双高运算指的是最高双高运算指的是最高位和次高位的进位或借位进行判别(或者说符号位位和次高位的进位或借位进行判别(或者说符号位进位进位CsCs和数值位进位和数值位进位C Cp p进行判别)进行判别)OF=CsOF=Cs C Cp pOF=1:OF=1:溢出溢出 OF=0OF=0:未溢出:未溢出说明:例:72(98)01001000B72 01100010B98 10101010-86例:72-(-98)01001000B72-10011110B-98 10101010-86出现溢出的可能出现溢出的可能场合场合:同符号数的加法同符号数的加法异符号数的减法异符号数的减法0 11 02-42-4、实数的表示、实数的表示 在计算机中,用二进制表示实数的方法有两种,在计算机中,用二进制表示实数的方法有两种,即定点法和浮点法。即定点法和浮点法。定点法:即小数点在数中的位置是固定不变的。定点法:即小数点在数中的位置是固定不变的。以定点法表示的实数称作定点数。以定点法表示的实数称作定点数。浮点法浮点法:类似于十进制数的科学表示法,小数点:类似于十进制数的科学表示法,小数点的位置是浮动的,且由阶数来指示。以浮点法表的位置是浮动的,且由阶数来指示。以浮点法表示的实数称作示的实数称作浮点数浮点数。1.1.定点数定点数设有一个8位定点数,小数点隐含固定在第3位(最低位为第0位)之前:如1101.1101B 代表-2.1875。特例1纯小数(定点小数):特例2纯整数(定点整数):实际中,原始数据经比例因子转化成纯小数或纯整数,运算后在用比例因子还原成实际值。0/10/10/10/10/10/10/10/1小数整数0/10/10/10/10/10/10/10/10/10/10/10/10/10/10/10/1简单直观,但精度低简单直观,但精度低83.12 102*0.8312,103*0.08312,104*0.0083121011.10101 24*0.101110101,25*0.0101110101浮点表示法:N=2(p)(d)2.浮点数浮点数其中:其中:d称为称为尾数尾数,是二进制补码纯小数,指,是二进制补码纯小数,指明数的全部有效数字;明数的全部有效数字;p称为称为阶码阶码,是二进制补码,是二进制补码定点整数,指明小数点的位置,它的符号称作阶符,定点整数,指明小数点的位置,它的符号称作阶符,表明小数点的移动方向。小数点随着表明小数点的移动方向。小数点随着p的符号和大的符号和大小而浮动,故这种数称为浮点数。小而浮动,故这种数称为浮点数。阶符阶码(p)数符尾数(d)1位 m位 1位 n位 浮点数具有范围大、精度高的优点。浮点数具有范围大、精度高的优点。2-52-5、字符编码、字符编码十进制编码十进制编码:在日常生活中的编码:电话号码、在日常生活中的编码:电话号码、房间编码、班级号和学号等等。这些编码问题的共同房间编码、班级号和学号等等。这些编码问题的共同特点是采用十进制数字来为用户、房间、班级和学生特点是采用十进制数字来为用户、房间、班级和学生等编号的。等编号的。文字符号图形编码:文字符号图形编码:在计算机中,由于机器只能识在计算机中,由于机器只能识别二进制数,因此键盘上所有的数字、字母和符号也别二进制数,因此键盘上所有的数字、字母和符号也必须事先为它们进行二进制编码,以便机器对它们加必须事先为它们进行二进制编码,以便机器对它们加以识别、存储、处理和传送。以识别、存储、处理和传送。二进制表示的二进制表示的3种常见编码:种常见编码:十进制数的二进制编码十进制数的二进制编码字符的二进制编码字符的二进制编码汉字的进制编码汉字的进制编码1、BCD码码(BinaryCodedDecimal)BCD码是十进制数的二进制编表示形式。为了方便十进码是十进制数的二进制编表示形式。为了方便十进制与机器数的变换,用制与机器数的变换,用4位二进制数来表示位二进制数来表示1位十进制数。位十进制数。4位二进制数共有位二进制数共有16种组合,其中种组合,其中00001001作为作为BCD码,码,10101111未被使用,称为非法码或冗余码。未被使用,称为非法码或冗余码。一个字节可表示高低一个字节可表示高低2位的位的BCD码。码。非压缩非压缩BCD码每位码每位BCD占用占用1个字节,高个字节,高4位为位为0.BCD码十进制BCD码十进制举例0000001015压缩BCD码:85=10000101(BCD)非压缩BCD码:85=00001000 00000101(BCD)0001101106001020111700113100080100410019(0100 1001 0111 1000 0001)BCD=2、ASCII码码AmericanStandardCodeforInformationInterchange现代微型计算机不仅要处理数字信息而且还现代微型计算机不仅要处理数字信息而且还需要处理大量文字信息。这就需要人们对这些文需要处理大量文字信息。这就需要人们对这些文字符号进行二进制编码,以供微型计算机识别、字符号进行二进制编码,以供微型计算机识别、存储和处理。存储和处理。ASCII码是码是“美国信息交换标准代码美国信息交换标准代码”的简的简称,是一种比较完整的字符编码,已成为国际通称,是一种比较完整的字符编码,已成为国际通用的标准编码,现已广泛用于微型计算机中。用的标准编码,现已广泛用于微型计算机中。ASCII码:码:键盘输入信息键盘输入信息CRT输出信息输出信息串行通信常采用串行通信常采用ASCII码来传送信息。码来传送信息。ASCII码由码由7位二进制数码构成,可为位二进制数码构成,可为128个字符编个字符编码码。这。这128个字符共分两类:个字符共分两类:32个控制字符和个控制字符和96个个图形字符。图形字符。96个图形字符包括十进制数符个图形字符包括十进制数符10个、大小写英文个、大小写英文字母字母52个和标点符号等个和标点符号等34个。例如:个。例如:数字数字09的的ASCII码为码为30H39H;大写字母大写字母AZ的的ASCII码为码为41H5AH。图形字符有特定形状,可以显示在图形字符有特定形状,可以显示在CRT上和上和打印在纸上,其编码可以存储、传送和处理。打印在纸上,其编码可以存储、传送和处理。32个控制字符包括回车符、换行符、退格符、设备个控制字符包括回车符、换行符、退格符、设备控制符和信息分隔符等,这类字符没有特定形状,控制符和信息分隔符等,这类字符没有特定形状,其编码虽然可以存储、传送和起某种控制作用,但其编码虽然可以存储、传送和起某种控制作用,但字符本身是不能在字符本身是不能在CRT上显示和打印机上打印的。上显示和打印机上打印的。3、奇偶校验码奇偶校验码通过对每一位二进制编码加配一个二进制位通过对每一位二进制编码加配一个二进制位奇偶奇偶校验位,通过对该位置校验位,通过对该位置“0”或或“1”总使得该组二进制编码中总使得该组二进制编码中的的”1”个数为奇数,即构成个数为奇数,即构成奇校验码奇校验码,如果总使得该组二进,如果总使得该组二进制编码中的制编码中的”1”个数为偶数,则构成个数为偶数,则构成偶校验码偶校验码。这种信息编。这种信息编码成为码成为奇偶校验码奇偶校验码。ASCII字符字符7位位ASCII码码 8位奇校验码位奇校验码 8位偶校验码位偶校验码“1”01100010011000110110001“A”100000111000001 01000001目的:在计算机串行通信中,常利用传送信息字节的奇偶目的:在计算机串行通信中,常利用传送信息字节的奇偶性(字节中性(字节中1的个数是奇数的个数是奇数/偶数?)来检测通信过程中是偶数?)来检测通信过程中是否出错,关于奇偶校验的编码方法,将在串行通信一节中否出错,关于奇偶校验的编码方法,将在串行通信一节中介绍。介绍。总结:数据类型总结:数据类型无符无符号数号数字节字节8位:位:0255字字16位:位:065525双字双字32位:位:04294967295整数整数(补码)(补码)字节字节8位:位:-128+127字字16位:位:-32768+32767双字双字32位:位:-2147483648+2147483647BCD码码压缩压缩00H99H099非压缩非压缩00H09H09ASCII码码控制控制08H退格,退格,0AH换行,换行,0DH回车回车字符字符30H39H09,41H5AHAZ校验码校验码奇校验奇校验C1HA,42HB,举例说明举例说明设内存中有一字节,内容是设内存中有一字节,内容是10000101B,按不按不同编码理解:同编码理解:无无符符号号数:数:133原码表示法:原码表示法:-5反码表示法:反码表示法:-122补码表示法:补码表示法:-123压缩压缩BCD码:码:85ASCII码:代表某图形字符码:代表某图形字符教学要求教学要求熟练掌握有符号数的表示方法-即原码、反码、和补码的定义、求法掌握补码运算的特点和基本法则,会用补码加、减法,理解溢出的概念,掌握溢出的判别方法理解定点数、浮点数的特点、表示方法掌握BCD码掌握字符的表示方法ASCII码。作业作业P25:1、3((1)(3)(6)(7))、)、4((1)(3)(6))5((2)(3))、)、6补充:补充:1、8421BCD码码01111001转换成十进制为转换成十进制为?2、补码、补码10111111的真值为的真值为D?