计算机中的数制和编码.ppt
《计算机中的数制和编码.ppt》由会员分享,可在线阅读,更多相关《计算机中的数制和编码.ppt(107页珍藏版)》请在装配图网上搜索。
第2章计算机中的数制和编码,主要内容,计算机中的常用计数制、编码及其相互间的转换;二进制数的算术运算和逻辑运算;符号数的表示及补码运算;二进制数运算中的溢出问题;基本逻辑门及译码器;定点数与浮点数的表示方法。,第2章计算机中的数制与编码,主要内容:2.1计算机中的数制2.2无符号数二进数制数的运算2.3符号数的表示及运算2.4定点数与浮点数2.5计算机中的编码,第一节计算机中的数制,主要内容:2.1.1常用计数制2.1.2各数制间的转换,2.1计算机中的数制,2.1计算机中的数制,了解:各种计数制的特点及表示方法;掌握:各种计数制之间的相互转换。,2.1.1常用计数制,十进制(Decimal)符合人们的习惯二进制(Binary)便于物理实现十六进制(Hex)便于识别、书写八进制(Octal),1.十进制,特点:以10为底,逢十进一;共有0-9十个数字符号。表示:权表达式,n:整数位数m:小数位数,2.二进制,特点:以2为底,逢2进位;只有0和1两个符号。(数后面加B)表示:权表达式,n:整数位数m:小数位数,3.十六进制,特点:以16为底,逢16进位(数后面加H)有0-9及A-F共16个数字符号,表示:权表达式,n:整数位数m:小数位数,4.任意K进制数的表示,一般地,对任意一个K进制数S都可表示为,其中:Si-S的第i位数码,可以是K个符号中任何一个n,m整数和小数的位数;K-基数;Ki-K进制数的权,5.如何区分不同进位记数制的数字,在数字后面加一个字母进行区分:二进制:数字后面加B,如1001B八进制:数字后面加O,如1001O十进制:一般不加,如1001十六进制:数字后面加H,如1001H在明显可以区分其记数制的情况下,可以省略数字后面的字母,十进制(D)二进制(B)八进制(O,Q)十六进制(H),000000010001112001022300113340100445010155601106670111778100089100191010A1011B1100C1101D1110E1111F,5.如何区分不同进位记数制的数字,例,234.98或(234.98)101101.11B或(1101.11)2ABCD.BFH或(ABCD.BF)16,2.1.2各数制间的转换,1.非十进制数到十进制数的转换:按相应的权表达式展开,再按十进制求和。例:24.AH=2161+4160+A16-1=36.625注:AF分别用1015代入例:10110010B=(?)1013FAH=(?)10,2.十进制到非十进制数的转换,十进制二进制:整数部分:除2取余;小数部分:乘2取整十进制十六进制:整数部分:除16取余;小数部分:乘16取整以小数点为起点求得整数和小数的每一位。注:十进制转换成任意K进制数与上类似,整数:除K取余,小数:乘K取整。,十进制到二进制转换例,255=(?)B,255=(11111111)B,(30)10=(11110)2,2|300低位2|1512|712|312|11高位0,(266)10=(10A)16,266/16=16A低位16/16=101/16=01高位,18,(0.8125)10=(0.1101)2,0.812521.62501高位0.625021.250010.250020.500000.500021.00001低位,19,(49.58)10=(?)2,110001.,整数除以2倒取余数小数乘以2正取整数,100,十进制到十六进制转换例,400.25=(?)H400/16=25-余数=0(个位)25/16=1-余数=9(十位)1/16=0-余数=1(百位)0.2516=4.0-整数=4(1/10)即:400.25=190.4H,3.二进制与十六进制间的转换,用4位二进制数表示1位十六进制数例:10110001001.110=(?)H010110001001.1100589.C注意:位数不够时要补0,24=16,用4位二进制数表示1位十六进制数0000-0H1001-9H1010-AH1011-BH1100-CH1101-DH1110-EH1111-FH,3.二进制与十六进制间的转换,第二节无符号二进制数的运算,主要内容:2.2.1无符号数的算术运算2.2.2无符号数的表示范围2.2.3逻辑运算2.2.4逻辑门2.2.5译码器2.2.6由基本门电路实现的部件,2.2无符号二进制数的运算,2.2无符号二进制数的运算,二进制数,算术运算逻辑运算,无符号数有符号数:,算术运算,2.2.1无符号数的算术运算,加法运算减法运算乘法运算除法运算,注意事项:,对加法:1+1=0(有进位)对减法:0-1=1(有借位)对乘法:仅有11=1,其余皆为0;乘以2相当于左移一位。对除法:除以2则相当于右移1位。,例,000010110100=00101100B000010110100=00000010B即:商=00000010B余数=11B,2.2.2无符号数的表示范围,一个n位的无符号二进制数X,其表示范围为:0X2n-1若运算结果超出这个范围,则产生溢出。溢出的判别方法:运算时,当最高位向更高位有进位(或借位)时则产生溢出。,例:,11111111+00000001100000000结果超出位(最高位有进位),发生溢出。(结果为256,超出位二进制数所能表示的范围255),2.2.3逻辑运算,与()或()非()异或(),掌握:逻辑关系(真值表)和逻辑门。例:A=10110110,B=01101011求:AB,AB,AB,特点:按位运算,无进位/借位。,“与”、“或”运算,任何数和“0”相“与”,结果为0任何数和“1”相“或”,结果为1,B,A,C,A,B,C,&,1,AB=C,AB=C,“非”、“异或”运算,“非”运算即按位求反两个二进制数相“异或”:相同则为0,相异则为1,A,A,B,C,1,B=A,AB=C,B,“与非”、“或非”运算,AB=CAB=C,B,A,C,A,B,C,&,1,2.2.4逻辑门,基本的逻辑门是与、或、非门,一个复杂的逻辑电路是由这些基本逻辑门连接成的。门电路是逻辑关系的基本硬件单元。按制作工艺的不同,可分为双极型逻辑门和MOS型逻辑门。两种工艺的代表类型为:TTL集成逻辑门和CMOS逻辑门。,1.与门(ANDGate),Y=AB,&,AB,Y,注:基本门电路仅完成1位二进制数的运算,AB,Y,2.或门(ORGate),Y=AB,Y,AB,1,3.非门(NOTGate),1,A,Y,1,A,Y,A,Y,4.异或门(eXclusiveORGate),Y=AB,Y,AB,5.与非门(NANDGate),Y=AB,Y,AB,&,6.或非门(NORGate),Y=AB,Y,AB,1,74LSXX系列是最常用的一种TTL门电路,性能价格比也比较高。如74LS00为四二输入与门、74LS32为四二输入或门,74LS86为四二输入异或门等。通过基本的与或非门电路可以设计出需要的各种复杂功能的电路,如加法器、译码器、数值比较器、数据选择器、奇偶检验/产生电路、编码器等。,2.2.5译码器(常用逻辑部件),2.2.5译码器,例:设计的74LS138译码器:,G1,G2A,G2B,C,B,A,Y0,Y7,38译码器原理,译码使能端,译码输入端,译码输出端,74LS138真值表,第三节符号数的表示及运算,主要内容:2.3.1符号数的表示2.3.2有符号二进制数与十进制的转换2.3.3符号数的算术运算2.3.4符号数运算中的溢出问题,2.3符号数的表示及运算,2.3符号数的表示及运算,计算机中的符号数的表示方法:把二进制数的最高位定义为符号位。符号位:“0”表示正数,“1”表示负数。把符号也数值化了的数,称为机器数。机器数所表示的真实的数值,称为真值。,注:后面的讲述均以8位二进制数为例。,例:,+52=+011010000110100符号位数值位-52=-011010010110100,真值,机器数,2.3.1符号数的表示,对于符号数,机器数常用的表示方法有原码、反码和补码三种。数X的原码记作X原,反码记作X反,补码记作X补。注意:对正数,三种表示法均相同。它们的差别在于对负数的表示。,1.原码X原,最高位为符号位,用“0”表示正,用“1”表示负;数值部分照原样写出即可。优点:真值和其原码表示之间的对应关系简单,容易理解;缺点:计算机中用原码进行加减运算比较困难,0的表示不唯一。正式定义为:,原码的例子,真值,X=+18=+0010010,X=-18=-0010010,原码,X原,=00010010,X原,=10010010,符号,符号位,n位原码表示数值的范围是对应的原码是11110111,8/16位符号数的表示范围,对8位二进制数:原码:-127+127对16位二进制数:原码:-32767+32767,数0的原码,8位数0的原码:+0=00000000-0=10000000即:数0的原码不唯一。,2.反码X反,对一个数X:若X0,则X反=X原若X0,则X补=X反=X原若X0,则X补=X反+1正式定义为:,例,X=52=0110100X原=10110100X反=11001011X补=X反+1=11001100,n位补码表示数值的范围是对应的补码是10000111,8/16位带符号数的表示范围,对8位二进制数:补码:-128+127对16位二进制数:补码:-32768+32767,0的补码,+0补=+0原=00000000-0补=-0反+1=11111111+1=100000000+0补=-0补=00000000,对8位字长,进位被舍掉,特殊数10000000,该数在原码中定义为:-0在反码中定义为:-127在补码中定义为:-128对无符号数,(10000000)2=128,4.8/16位符号数的表示范围,对8位二进制数:原码:-127+127反码:-127+127补码:-128+127对16位二进制数:原码:-32767+32767反码:-32767+32767补码:-32768+32767,2.3.2有符号二进制数与十进制的转换,对用补码表示的二进制数:1)求出真值2)进行转换,例,将一个用补码表示的二进制数转换为十进制数。X补=00101110B真值为:0101110B正数所以:X=+46X补=11010010B真值不等于:-1010010B负数而是:X=X补补=11010010补=-0101110B=-46,通过使用反码,可将求补码公式中的减法也省略掉,最终实现避免减法运算。规则如下:,X补=X反+1,2.3.3符号数的算术运算,2.3.3符号数的算术运算,采用补码作加法时,遵循以下原则:要把符号位当作数据一同参与运算;符号位相加后,若有进位存在,则把进位舍去,2.3.3符号数的算术运算,通过引进补码,可将减法运算转换为加法运算。规则如下:X+Y补=X补+Y补X-Y补=X+(-Y)补=X补+-Y补其中X,Y为正负数均可,符号位参与运算。,补码的运算原理,模(module)就是一个计数系统的最大容量。例如,钟表的模为12,8位二进制数的模为28。凡是用器件进行的运算都是有模运算,运算结果超过模的部分会被运算器自动丢弃。因此,当器件为n位时,有X=2n+X(mod2n)不难验证,X补=2n+X(mod2n)因此,XY补=2n+(XY)(mod2n)=(2n+X)+(2nY)(mod2n)=X补+Y补,例,X=-0110100,Y=+1110100,求X+Y补=?X原=10110100X补=X反+1=11001100Y补=Y原=01110100所以:X+Y补=X补+Y补=11001100+01110100=01000000X+Y=+1000000,进(借)位在加法过程中,符号位向更高位产生进位;在减法过程中,符号位向更高位产生借位。溢出运算结果超出运算器所能表示的范围。有符号数运算,有溢出表示结果是错误的无符号数运算,有进(借)位表示结果是错误的,2.3.4符号数运算中的溢出问题,溢出的判断方法,方法:同号相减或异号相加不会溢出。同号相加或异号相减可能溢出:两种情况:同号相加时,结果符号与加数符号相反溢出;异号相减时,结果符号与减数符号相同溢出。,方法:两个8位带符号二进制数相加或相减时,若C7C61,则结果产生溢出。C7为最高位的进(借)位;C为次高位的进(借)位。,溢出的判断方法,观察以下四种情况哪个溢出?,10110101+10001111101000100,01000010+0110001110100101,01000010+11001101100001111,CASE1:,CASE2:,CASE3:,假定以下运算都是有符号数的运算。,00100010+1100110111101111,CASE4:,无符号数:错误!有符号数:错误!,无符号数:正确!有符号数:错误!,无符号数:错误!有符号数:正确!,例:,若:X=01111000,Y=01101001则:X+Y=即:次高位向最高位有进位,而最高位向前无进位,产生溢出。(事实上,两正数相加得出负数,结果出错),第四节定点数与浮点数,2.4定点数与浮点数,在计算机中,用二进制表示实数的方法有两种:定点法浮点法,定点数,定点数:小数点位置固定不变的数。小数点的位置:纯小数纯整数,符号,X1,X2,Xn,小数点位置,符号,X1,X2,Xn,小数点位置,浮点数,浮点数来源于科学记数法例如:+123.5=+0.123103-0.001235=-0.12310-2浮点数:用阶码和尾数表示的数,尾数通常为纯小数。2EF,数符,阶E,阶符,尾数F,小数点位置,阶码,80 x86中使用的IEEE标准浮点数,单精度浮点数(阶码偏移7FH)双精度浮点数(阶码偏移3FFH),数符,阶E(11位),尾数F(52位),整数部分默认为1,小数点位置,数符,阶E(8位),尾数F(23位),整数部分默认为1,小数点位置,313023220,636252510,例:,将1011.10101用8位阶码、15位尾数的规格化浮点数形式表示。解:因为1011.101010.10111010124所以要求的浮点数为:,0,0000100,101110101000000,0,阶码,阶符,数符,尾数(后补0到15位),用IEEE标准单精度浮点数重做上题。因为1011.101011.0111010123,阶为7FH+3=82H=10000010B所以要求的浮点数为:,0,10000010,01110101000000000000000,例:,浮点数的表示,例.写出178.125以单精度浮点数形式存放的机器数,解:178.125(D)=10110010.001(B)表示成规格化的浮点数为1.01100100012723位有效数字字段为01100100010000000000000真阶码为111偏置阶码为1111111+111=10000110符号位为0178.125的单精度浮点机器数为01000011001100100010000000000000表示成十六进制为43322000(H),第五节计算机中的编码,主要内容:2.5.1BCD码2.5.2ASCII码2.5.3汉字编码,2.5计算机中的编码,2.5计算机中的编码,非数值数据在计算机中必须以二进制形式表示,非数值数据的表示本质上是编码的过程。常用的二种:BCD码用二进制编码的十进制数ASCII码美国标准信息交换代码,2.5.1BCD码,用4位二进制数表示一位十进制数。有两种表示法:压缩BCD码非压缩BCD码,2.5.1BCD码,压缩BCD码每一位用4位二进制表示,00001001表示09,一个字节表示两位十进制数。如:92D,转换为BCD码为10010010B,存储在一个字节,内容为:10010010。,2.5.1BCD码,非压缩BCD码用用一个字节表示一位十进制数,高4位总是0000,低4位的00001001表示09。如:92D,转换为BCD码为10010010B,存储在两个字节,内容分别为:00001001,00000010。,BCD码与二进制数之间的转换,先转换为十进制数,再转换二进制数;反之同样。例:(00010001.00100101)BCD=11.25=1011.01B,采用7位二进制代码对字符进行编码。,英文字母AZ的ASCII码从1000001(41H)开始顺序递增;字母az的ASCII码从1100001(61H)开始顺序递增,这样的排列对信息检索十分有利。,数字09的编码是01100000111001(30H39H),规律:高3位:011;后4位:二进制代码(BCD码)。,最高位通常总为0,有时也用作奇偶校验位。,2.5.2ASCII码,ASCII码的校验,奇校验加上校验位后编码中“1”的个数为奇数。例:A的ASCII码是41H(1000001B),以奇校验传送则为C1H(11000001B)偶校验加上校验位后编码中“1”的个数为偶数。上例若以偶校验传送,则为41H。,2.5.2ASCII码,用8位二进制数表示时,最高位总为0,因此最高位(D7位)可作为奇偶校验位。熟悉16进制数0-F的ASCII码:30H-39H,41H-46H,ASCII码美国标准信息交换代码,汉字编码包括输入编码、内码和字型编码,分别用于输入、内部处理和输出。汉字的输入编码是为了使用西文标准键盘把汉字输入到计算机中,其编码方法主要有数字编码、拼音码和字形编码三类。除了键盘输入以外,利用语音或图象识别技术自动将汉字输入到计算机内的方法也已经实现,2.5.3汉字编码,汉字字型编码是用来描述汉字字形的代码,它是汉字的输出形式。汉字库有点阵字库、TrueType字库、矢量字库等类型,2.5.3汉字编码,汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码,它采用两个字节的二进制形式表示一个汉字。为了与英文字符能相互区别,汉字机内代码中两个字节的最高位均规定为l。例如:汉(BABA)字(D6D7)编(E0B1)码(EBC2)汉字字型编码是用来描述汉字字形的代码,它是汉字的输出形式。汉字库有点阵字库、TrueType字库、矢量字库等类型,2.5.3汉字编码,结束语,掌握:掌握原码、反码、和补码的定义、求法,掌握补码运算的特点和基本法则,会用补码加、减法熟练掌握有符号数的表示方法,了解定点数、浮点数的表示方法。理解溢出的概念,掌握溢出的判别方法;掌握BCD码的表示方法;掌握字符的表示方法ASCII码;了解汉字编码,复习题:,2.1采用8位二进制数,整数补码所能表示的范围为,-1的补码是。2.2一有符号数的补码为11110111B,它所表示的真值为D。2.3将二进制数1011011.1转换为十六进制数为。2.4将二进制数101101.101转换为十进制数为。,复习题:,2.5将十进制数199转换为二进制数为。2.6BCD码表示的数逢进一,ASCII码用来表示数时,是一种(压缩或非压缩)的BCD码。2.7十进制数36.875转换成二进制是。2.8补码10110110代表的十进制负数是。,复习题:,2.9已知X的补码是11101011,Y的补码是01001010,则X-Y的补码是。2.10X、Y的字长均为12位,已知X反A3CH,原码为H,Y反03CH,则X-Y的补码为H。2.11带符号数在机器中以码表示,-78表示为。,复习题题解:,2.1采用8位二进制数,整数补码所能表示的范围为-128-127,-1的补码是0FFH2.2一有符号数的补码为11110111B,它所表示的真值为-9D。2.3将二进制数1011011.1转换为十六进制数为5B.8H。2.4将二进制数101101.101转换为十进制数为45.625D。,复习题题解:,2.5将十进制数199转换为二进制数为11000111B。2.6BCD码表示的数逢十进一,ASCII码用来表示数时,是一种非压缩的BCD码(压缩或非压缩)的BCD码。2.7十进制数36.875转换成二进制是100100.111B。2.8补码10110110代表的十进制负数是-74D,复习题题解:,2.9已知X的补码是11101011,Y的补码是01001010,则X-Y的补码是10100001B2.10、Y的字长均为12位,已知X反A3CH,原码为0DC3H,Y反03CH,则X-Y的补码为0A01H。2.11带符号数在机器中以补码表示,-78表示为FFB2H。,作业:,2.12设X=+100101,Y=-0110110求X+2Y=?,谢谢大家!,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 中的 数制 编码
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文