《第二章 微型计算机基础知识.ppt》由会员分享,可在线阅读,更多相关《第二章 微型计算机基础知识.ppt(130页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1/148第二章第二章 微型计算机基础知识微型计算机基础知识本章学习目标本章学习目标掌握微型计算机中的数制及其编码掌握微型计算机中的数制及其编码 掌握布尔代数和常见逻辑电路掌握布尔代数和常见逻辑电路 了解微型计算机的常用技术术语和技术了解微型计算机的常用技术术语和技术2/1481微型机中的数制及其编码一、数与数制一、数与数制 进位计数制,简称数制。进位计数制,简称数制。十进制:十进制:人们习惯采用的计数制是十进制。人们习惯采用的计数制是十进制。 09 09 十个不同的基数,逢十进一。十个不同的基数,逢十进一。 用用D D表示或省略。表示或省略。二进制:二进制:计算机所采用的计数制是二进制。计算
2、机所采用的计数制是二进制。 只有只有0 0、1 1两个不同的基数,逢二进一。两个不同的基数,逢二进一。 用用B B表示。表示。 因为计算机用晶体管截止、饱和两个状因为计算机用晶体管截止、饱和两个状态下的输出电平态下的输出电平1 1、0 0表示数字。表示数字。3/148十进制与二进制转换十进制与二进制转换人机交互时采用十进制,计算机内数据存储、人机交互时采用十进制,计算机内数据存储、计算、处理用二进制,需要需要进行转换。在计算、处理用二进制,需要需要进行转换。在计算机中的解决方法是,利用计算机中的解决方法是,利用接口技术接口技术作转换。作转换。 如:用键盘输入数据时使用十进制数,即输如:用键盘输
3、入数据时使用十进制数,即输入电路使用的键盘是十进制数,输入接口电路入电路使用的键盘是十进制数,输入接口电路将十进制数转换为二进制数后送到机器内部;将十进制数转换为二进制数后送到机器内部;4/148二、不同数制之间的转换二、不同数制之间的转换1 1、十进制数转换为二进制数、十进制数转换为二进制数十进制数转换为二进制数的方法十进制数转换为二进制数的方法整数部分转换方法整数部分转换方法:除以:除以2 2取余,直到商为取余,直到商为0 0为为止。最后将所有余数倒序排列,得到转换结果。止。最后将所有余数倒序排列,得到转换结果。小数部分转换方法小数部分转换方法:乘以:乘以2 2取整,直到满足精度取整,直到
4、满足精度要求为止。要求为止。5/148例例1 1:将十进制数:将十进制数100100转换为二进制数转换为二进制数余数2低位222222高位10005002512160301101(100)10=(01100100)2 或者表示为:或者表示为: 100D=01100100B6/148例例2 2:将十进制数:将十进制数45.61345.613转换成二进制数转换成二进制数45.613 (101101.100111)2 或或45.613D101101.100111B7/1482 2、二进制数转换为十进制数、二进制数转换为十进制数转换方法:按权展开相加。转换方法:按权展开相加。 例如,一个例如,一个8
5、8位的二进制数的各位的权值依次位的二进制数的各位的权值依次是是2 27 7 、 2 26 6 、 2 25 5 、 、2 20 0 。 如将如将10110110B10110110B转换为十进制数的方法是:转换为十进制数的方法是:765432101 2021 21 2021 21 202182 即,即,(10110110)2 =(182)10或者表示为:或者表示为: 10110110B=182D 8/1483 3、十六进制数、十六进制数优点优点:二进制数位数较多时,读写不方便。:二进制数位数较多时,读写不方便。而使用十六进制表示简明。而使用十六进制表示简明。十六进制数表示:十六进制数表示: 09
6、、A、B、C、D、E、F十六个不同的基数十六个不同的基数 逢十六进一逢十六进一 用用H表示。表示。9/148二进制数转换为十六进制数二进制数转换为十六进制数 原理:原理:四位二进制数对应一位十六进制,四位二进制数对应一位十六进制,所以二进制整数转换为所以二进制整数转换为1616进制时,从最低位进制时,从最低位开始,每四位一组(不足四位时高位补开始,每四位一组(不足四位时高位补0 0)转换成一位十六进制数据即可。转换成一位十六进制数据即可。 例如:例如:1011 0110B=B6H1011 0110B=B6H。10/148十六进制数转换为二进制数十六进制数转换为二进制数 十六进制数据转换为二进制
7、数据时,把十六进制数据转换为二进制数据时,把每一位十六进制数据直接写成四位二进制数。每一位十六进制数据直接写成四位二进制数。例如:例如:64H=0110 0100B64H=0110 0100B11/1484 4位二进制数和一位十六进制数具有一一对应的位二进制数和一位十六进制数具有一一对应的关系。关系。十六进制十六进制二进制二进制十六进制十六进制二进制二进制0000081000100019100120010A101030011B101140100C110050101D110160110E111070111F1111表表2-1 4位二进制数和一位十六进制数的对应关系位二进制数和一位十六进制数的对应
8、关系12/148十六进制数据和十进制数据之间的转换十六进制数据和十进制数据之间的转换通过二进制转换;通过二进制转换;将十进制整数除以十六取余,小数部分乘以十将十进制整数除以十六取余,小数部分乘以十六取整,可直接转换为十六进制数;六取整,可直接转换为十六进制数;将十六进制数按权展开相加得到十进制数。将十六进制数按权展开相加得到十进制数。 n+1n+1位十六进制数的权值分别为位十六进制数的权值分别为1616n n、1616n-1n-1、16162 2、16161 1、16160 013/148三、数制数据的编码及其运算三、数制数据的编码及其运算 在计算机中,数据分在计算机中,数据分无符号数无符号数
9、和和带符号数带符号数。无符号数用整个机器字长的全部二进制位表无符号数用整个机器字长的全部二进制位表示数值位示数值位, , 无符号位;无符号位;带符号数用带符号数用最高位最高位表示该数的表示该数的符号位符号位。 带符号数又有带符号数又有原码原码、补码补码和和反码反码三种形式。三种形式。14/1481 1、原码表示法、原码表示法由于计算机中只能有由于计算机中只能有0 0、1 1两种数,不仅数两种数,不仅数的数值部分在计算机中用的数值部分在计算机中用0 0、1 1编码的形式编码的形式表示,正、负号也只能用表示,正、负号也只能用0 0、1 1编码表示。编码表示。一般用数的一般用数的最高位最高位(Mos
10、t Significant Most Significant BitBit,MSBMSB)表示数的正负符号。)表示数的正负符号。原码表示法原码表示法: :一个数连同它的符号在机器中一个数连同它的符号在机器中使用使用0 0、1 1进行编码。进行编码。15/148 例如,若用例如,若用5 5位二进制数表示数据时,位二进制数表示数据时,最高位表示符号,最高位表示符号,0 0表示正数,表示正数,1 1表示负数,表示负数,余下的四位表示数据:余下的四位表示数据:MSB=0MSB=0表示正数,如表示正数,如1011B1011B表示为表示为0 01011B1011B;MSB=1MSB=1表示负数,如表示负数
11、,如1011B1011B表示为表示为1 11011B1011B。16/148机器数和真值机器数和真值把一个数在机器内的二进制形式称为机器数。把一个数在机器内的二进制形式称为机器数。把这个数本身称为该机器数的真值。把这个数本身称为该机器数的真值。上例的上例的“01011B”01011B”和和“11011B”11011B”就是两个就是两个机机器数。器数。它们的真值分别为它们的真值分别为1011B1011B和和1011B1011B。17/148真值为纯小数时,其原码形式为真值为纯小数时,其原码形式为X XS SX X1 1X X2 2XXn n,其中其中X XS S表示符号位。例如,表示符号位。例如
12、, 若若X X0.01100.0110,则,则XX原原X X0.01100.0110; 若若X X-0.0110-0.0110,则,则XX原原1.01101.0110真值为纯整数时,其原码形式为真值为纯整数时,其原码形式为 X XS SX Xn nX Xn-1n-1XX2 2X X1 1,其中,其中X XS S表示符号位。表示符号位。 18/1488位二进制原码的表示范围为:位二进制原码的表示范围为: -127 -0 +0+12716位二进制原码的表示范围为:位二进制原码的表示范围为: -32767 -0 +0+32767原码表示中,真值原码表示中,真值0有两种不同的表示形式:有两种不同的表示
13、形式: 0原原00000, 0原原1000019/148无符号数无符号数 没有符号位的数,称为无符号数。没有符号位的数,称为无符号数。 无符号数的最大值比有符号数大一倍。无符号数的最大值比有符号数大一倍。 如字长为如字长为8 8位时,能表示的无符号数的最大位时,能表示的无符号数的最大值为值为11111111B11111111B,即,即255255,而,而8 8位有符号数的位有符号数的最大值是最大值是01111111B01111111B,即,即+127+127。20/1488位二进制无符号数的表示范围为:位二进制无符号数的表示范围为:025516位二进制无符号数的表示范围为:位二进制无符号数的表
14、示范围为:065535原码的优点是直观易懂,机器数和真值间原码的优点是直观易懂,机器数和真值间的转换很容易,用原码实现乘、除运算的的转换很容易,用原码实现乘、除运算的规则简单。规则简单。缺点缺点是加、减运算规则较复杂。是加、减运算规则较复杂。21/148原码计算存在的问题原码计算存在的问题 直接用直接用0 0、1 1表示正、负,运算时带来的表示正、负,运算时带来的问题:有符号数和无符号数的表示形式并问题:有符号数和无符号数的表示形式并没有任何区别,所以,没有任何区别,所以,CPUCPU在进行运算时,在进行运算时,并不知道参与运算的数是有符号数还是无并不知道参与运算的数是有符号数还是无符号数,在
15、进行有符号数的运算时,会将符号数,在进行有符号数的运算时,会将符号也当作是数值进行运算,因而有时会符号也当作是数值进行运算,因而有时会出现出现错误的结果错误的结果。22/148两个正数相加时,符号位也同时相加两个正数相加时,符号位也同时相加若两个数之和不超出其所能表示的最大值若两个数之和不超出其所能表示的最大值127127时,符号位相加:时,符号位相加:0 00 00 0,即和仍然为正数,即和仍然为正数,结果正确。结果正确。若两个数之和超出了其所能表示的最大值若两个数之和超出了其所能表示的最大值127127时,就会产生数字位向符号位的进位,两个时,就会产生数字位向符号位的进位,两个符号位相加符
16、号位相加0 00 00 0,再加上低位进上来的,再加上低位进上来的1 1,则符号位为则符号位为1 1,作为有符号数,表示两个正数,作为有符号数,表示两个正数相加的和为负数,显然是不对的。相加的和为负数,显然是不对的。23/148例例1 1,两个有符号正数,两个有符号正数01010111B01010111B(87D87D) 和和00010110B00010110B(22D22D)相加。)相加。其和为其和为1101101B1101101B,即十进制的,即十进制的109109127127,符号位为符号位为0 0,表示和为正数,结果正确。,表示和为正数,结果正确。01010111+ 000101100
17、110110124/148例例2 2,两个有符号正数,两个有符号正数00110111B00110111B(55D55D)和)和01011101B01011101B(93D93D)相加。)相加。和应为和应为+148+148,但符号位为,但符号位为1 1,表示和是负数,错误。,表示和是负数,错误。产生错误的原因是:产生错误的原因是:相加的和是相加的和是148148127127,超出了超出了8 8位有符号正数所能位有符号正数所能表示的最大值,对于有表示的最大值,对于有符号数,这种数值运算符号数,这种数值运算侵入到符号位造成结果侵入到符号位造成结果错误的情况,称为错误的情况,称为溢出溢出。 00110
18、111+ 010111011001010025/148一个正数与一个负数相加一个正数与一个负数相加,和的符号位不,和的符号位不应是两个符号位直接运算的值:应是两个符号位直接运算的值:0 01 11 1。 和的符号位应由两数中绝对值大的数所决和的符号位应由两数中绝对值大的数所决定。定。两个负数相加时两个负数相加时,由于,由于1 11 11010,符号位,符号位只表示只表示0 0,因此和的符号也不应是由两符号,因此和的符号也不应是由两符号位直接运算的结果所决定。位直接运算的结果所决定。为解决机器内有符号数的符号位参加运算为解决机器内有符号数的符号位参加运算的问题,引入了的问题,引入了反码反码和和补
19、码补码。26/1482 2、反码表示法、反码表示法对正数来说,其反码和原码相同。对正数来说,其反码和原码相同。 即即 原原 反反。对负数来说,反码为其原码的符号位不变,数值对负数来说,反码为其原码的符号位不变,数值部分的各位取反。部分的各位取反。在反码表示中,真值在反码表示中,真值0 0也有两种不同的表示也有两种不同的表示 形式:形式: 00反反00000B00000B 00反反11111B11111B 27/148真值、原码、反码的不同表示真值、原码、反码的不同表示 原原 反反1101B01101B01101B1101B11101B10010B28/148反码运算要注意以下三个问题:反码运算
20、要注意以下三个问题:符号位可与数值位一样参加运算。符号位可与数值位一样参加运算。符号位运算后如有进位产生,则把这个进位送符号位运算后如有进位产生,则把这个进位送回到最低位去相加,这叫循环进位。回到最低位去相加,这叫循环进位。反码运算具有性质:反码运算具有性质:XX反反YY反反XXYY反反29/1483 3、补码表示法、补码表示法同余的概念同余的概念两整数两整数A A和和B B除以同一正整数除以同一正整数M M,所得余数相,所得余数相同,则称同,则称A A和和B B对对M M同余。同余。 可写成:可写成:A AB B(mod Mmod M)例如:对钟表来说,其模例如:对钟表来说,其模M M121
21、2,故,故4 4点和点和1616点、点、5 5点和点和1717点点均是同余的。均是同余的。 4 41616(mod 12mod 12),),5 51717(mod 12mod 12)30/148指针式钟表的校准(快两个小时指针式钟表的校准(快两个小时) )方法一:往回拨两个小时方法一:往回拨两个小时方法二:往前拨方法二:往前拨1010个小时,结果相同。个小时,结果相同。 钟表按照钟表按照1212小时循环计数,一旦加到大于小时循环计数,一旦加到大于1212小时时,就会将小时时,就会将1212舍弃,计为舍弃,计为0 0点。点。31/148这种按照周期循环的数的周期叫做模,这这种按照周期循环的数的周
22、期叫做模,这里模是里模是1212,数一旦大于或等于其模,就会,数一旦大于或等于其模,就会被自动舍弃。被自动舍弃。所以,所以,5+10-12=35+10-12=3,而,而5-2=5+10-12=5+5-2=5+10-12=5+(10-1210-12),),1010可看作可看作-2-2的补码。的补码。 即以即以1212为模时,为模时,2 2和和1010同余。同余的两个同余。同余的两个数具有互补关系数具有互补关系, , 2 2与与1010对模对模1212互补,即互补,即2 2的补码是的补码是1010。32/148可见,只要确定了可见,只要确定了“模模”,就可找到一个,就可找到一个与负数等价的正数与负
23、数等价的正数( ( 该正数是负数的补码该正数是负数的补码 ) )来代替此负数,这个正数可用模加上负数来代替此负数,这个正数可用模加上负数本身求得,这样就可把减法运算用加法实本身求得,这样就可把减法运算用加法实现了。现了。33/148补码的概念:补码的概念:知道模的大小,求某个负数的补码时,知道模的大小,求某个负数的补码时,只要将该负数加上其模,就得到它的补只要将该负数加上其模,就得到它的补码。码。如以如以“10”10”为模,为模,“-7”-7”的补码为的补码为 (7 7)+10+10 3 3 (mod 10mod 10) 这时这时“3”3”就是就是“-7”-7”的补码。的补码。 34/148某
24、一正数加上一个负数时,实际上是做一某一正数加上一个负数时,实际上是做一次减法。引入补码概念之后,可将该正数次减法。引入补码概念之后,可将该正数加上这个负数的补码,最高位产生的进位加上这个负数的补码,最高位产生的进位会自然丢失,所以得到的结果同样是正确会自然丢失,所以得到的结果同样是正确的。的。 例如,当模为例如,当模为10时,时, 7(-7) 7(-7+10)=7+3 =10=10-10 = 0(mod 10) 又如,又如, 7+(-4)=7+(-4+10)=7+6=13=13-10=3 (mod 10)35/148以以2 2n n为模的补码为模的补码 在计算机中,带符号的数用二进制补在计算机
25、中,带符号的数用二进制补码表示。存放数据的存储器的位数都是确码表示。存放数据的存储器的位数都是确定的。如每个存数单元的字长为定的。如每个存数单元的字长为n n位,则位,则它的模就是它的模就是2 2n n。 2 2n n是是n nl l位的二进制数位的二进制数1000B1000B(1 1后面后面有有n n个个0 0),由于机器只能表示),由于机器只能表示n n位数,因位数,因此数此数2 2n n在机器中仅能以在机器中仅能以n n个个0 0来表示,而该来表示,而该数最高位的数字数最高位的数字1 1就被自动舍弃了。则以就被自动舍弃了。则以2 2n n为模时为模时2 2n n和和0 0在机器中的表示形
26、式是完全在机器中的表示形式是完全一样的。一样的。36/148如果将如果将n n位字长的二进制数的最高位留做符号位字长的二进制数的最高位留做符号位,则数字只剩下位,则数字只剩下n-1n-1位,下标从位,下标从n-2n-2到到0 0,数,数字字X X 的补码(以的补码(以2 2n n为模)的表示形式为:为模)的表示形式为:当当X X为正数时,即为正数时,即X X+X+Xn-2n-2X Xn-3n-3XX1 1X X0 0时,时, XX补补=2=2n n+X+X =0 X =0 Xn-2n-2X Xn-3n-3XX1 1X X0 0 (mod2(mod2n n) ) =X =X原原37/148当当X
27、为负数时,即为负数时,即X-Xn-2Xn-3X1X0时,时,38/148例如,例如,n=8时,时,28=100000000B,则,则1010111B的补码为:的补码为:1010111B补补100000000B1010111B 10101001B或或1010111B补补1010111B反反1 10101000B1 10101001B39/148正数:补码和原码的形式相同:正数:补码和原码的形式相同: 原原 补补;负数:补码为其反码(数值部分各位变反)负数:补码为其反码(数值部分各位变反)加。加。例如:例如: 原原 反反 补补正数正数 0001101B 00001101B 00001101B 00
28、001101B0001101B 00001101B 00001101B 00001101B负数负数 0001101B 10001101B 11110010B 11110011B0001101B 10001101B 11110010B 11110011B40/148不论是正数,还是负数,反码与补码具有不论是正数,还是负数,反码与补码具有下列相似的性质:下列相似的性质: 反反 反反 原原 补补 补补 原原41/148【例【例2-12-1】+13+13和和-13-13的原码、反码、补码以及的原码、反码、补码以及反码的反码和补码的补码如下:反码的反码和补码的补码如下: X X 原原 反反 补补 反反
29、反反 补补 补补 0001101B 00001101B 00001101B 00001101B 00001101B 00001101B0001101B 00001101B 00001101B 00001101B 00001101B 00001101B 0001101B 10001101B 11110010B 11110011B 10001101B 10001101B0001101B 10001101B 11110010B 11110011B 10001101B 10001101B 42/148 无符号数无符号数有符号数有符号数十进制数十进制数二进制数二进制数真值真值原码原码反码反码补码补码12
30、7101281292550111 1111B0000 0001B0000 0000B1000 0000B1000 0001B1111 1111B+127:+1+0-0-1:-127-1280111 1111B:0000 0001B0000 0000B1000 0000B1000 0001B:1111 1111B不能表示不能表示0111 1111B:0000 0001B0000 0000 B1111 1111 B1111 1110 B:1000 0000 B不能表示不能表示0111 1111 B:0000 0001 B0000 0000 B0000 0000 B1111 1111 B:1000
31、0001 B1000 0000 B表表2-2 8位二进制数的原码、反码、补码的表示位二进制数的原码、反码、补码的表示43/148 可见,可见, 8 8位字长,原码、反码表示的数的位字长,原码、反码表示的数的 范围为范围为127127127127,而补码表示的数的范,而补码表示的数的范围为围为127127128128。下面对两个特殊的数的补码作进一步说明:下面对两个特殊的数的补码作进一步说明:0 0的补码的补码 +0+0补补00000000B00000000B -0 -0原原10000000B10000000B,经求反加,经求反加1 1,得,得00000000B00000000B, 所以,所以,
32、-0-0补补00000000B00000000B。 即,对补码,即,对补码, +0+0补补 -0-0补补00000000B00000000B44/148-128-128的补码的补码根据补码的定义,根据补码的定义, 128128补补= 2= 28 8( (128)128) = 2 = 28 8 ( (127)-1127)-1 =100000000B-1111111B-1 =100000000B-1111111B-1 =100000001B-1 =100000001B-1 =10000000B =10000000B45/148数值数据的运算数值数据的运算采用补码进行加减运算时要注意以下几个问题:采
33、用补码进行加减运算时要注意以下几个问题:溢出溢出 补码运算时,其符号位与数值部分一样参加运算,但补码运算时,其符号位与数值部分一样参加运算,但结果不能超出其所能表示的数的范围,否则会出现溢出错结果不能超出其所能表示的数的范围,否则会出现溢出错误。误。 无符号数的加减运算结果超出数的范围的情况叫做进位无符号数的加减运算结果超出数的范围的情况叫做进位或借位,计算机中有专用的标志位作记录,只要适当处理或借位,计算机中有专用的标志位作记录,只要适当处理这些标志,结果就不会出错,所以在多字节数的加减运算这些标志,结果就不会出错,所以在多字节数的加减运算时必须考虑进位和借位的处理。时必须考虑进位和借位的处
34、理。46/148采用了补码以后,符号运算后如出现进位,则采用了补码以后,符号运算后如出现进位,则把这个进位舍去不要,不影响运算结果,运算把这个进位舍去不要,不影响运算结果,运算后的符号就是结果的符号。后的符号就是结果的符号。补码运算的性质:补码运算的性质: 补补补补补补 补补补补补补以上运算性质,与数的位数以上运算性质,与数的位数n无关。无关。47/148下面以二进制数的补码运算为例,说明有符号数的下面以二进制数的补码运算为例,说明有符号数的运算性质运算性质【例【例2-22-2】已知:】已知:+0101101B+0101101B 0000001B0000001B求?求?解:补解:补= 0010
35、1101= 00101101补补= 11111111= 11111111 补补 = 100101100= 100101100 进位舍去不要进位舍去不要补补补补0101100B=X0101100B=X补补+Y+Y补补48/148【例【例2-32-3】已知:】已知:0001101B0001101B 0000001B0000001B求:?求:?解:补解:补 = 11110011= 11110011补补 = 11111111= 11111111 补补 = 111110010 = 111110010 进位舍去不要进位舍去不要所以,补补所以,补补0001110B0001110B49/148【例【例2-42
36、-4】已知:】已知:+1+1128128 求:?求:?解:补解:补0000000100000001补补1000000010000000 补补1000000110000001所以,补补所以,补补11111111B11111111B 12712750/148加法器就能完成所有的算术运算加法器就能完成所有的算术运算加法算减法加法算减法:因为减去一个正数的减法运:因为减去一个正数的减法运算可以看作是加上一个负数的加法运算,算可以看作是加上一个负数的加法运算,所以在计算机中,求得补码之后,就把减所以在计算机中,求得补码之后,就把减一个正数的运算转变为加上该负数的补码一个正数的运算转变为加上该负数的补码的
37、加法运算。的加法运算。加法算乘法加法算乘法:可以采用移位相加的方法完:可以采用移位相加的方法完成。成。加法算除法加法算除法:采用移位相减的方法完成,:采用移位相减的方法完成,这样只用加法器就能完成所有的算术运算。这样只用加法器就能完成所有的算术运算。51/148三种编码小结:三种编码小结:对正数而言,上述三种码都等于真值本身。对正数而言,上述三种码都等于真值本身。最高位都表示符号位,补码和反码的符号位可最高位都表示符号位,补码和反码的符号位可与数值位一样对待,和数值位一起参加运算;与数值位一样对待,和数值位一起参加运算;但原码的符号位必须与数值位分开处理。但原码的符号位必须与数值位分开处理。原
38、码和反码的真值原码和反码的真值0 0各有两种不同的表示方式,各有两种不同的表示方式,而补码的真值而补码的真值0 0表示是唯一的。表示是唯一的。52/1484 4、十进制数的编码、十进制数的编码常用的十进制数编码有:常用的十进制数编码有: BCDBCD码(码(Binary-Coded DecimalBinary-Coded Decimal) 余余3 3码码 格雷码格雷码BCDBCD码:是二进制编码形式的十进制数。即码:是二进制编码形式的十进制数。即用用4 4位二进制数表示一位十进制数,这种编位二进制数表示一位十进制数,这种编码形式可以有多种,其中最自然、最常用码形式可以有多种,其中最自然、最常用
39、的一种形式为的一种形式为8-4-2-1BCD8-4-2-1BCD码。码。53/148非压缩非压缩BCDBCD 用一个字节的用一个字节的8 8位二进制数表示十进制数时,若位二进制数表示十进制数时,若每个字节的高四位为每个字节的高四位为0 0,只用其低四位表示一位十,只用其低四位表示一位十进制数,则称为非压缩的进制数,则称为非压缩的BCDBCD码,表示格式如图所码,表示格式如图所示。它所表示的数的范围是示。它所表示的数的范围是0-90-9。D7D6D5D4D3D2D1D00000个位个位图2-3 非压缩BCD码的表示格式54/148D7D6D5D4D3D2D1D0十位十位个位个位图2-4 压缩BC
40、D码的表示格式压缩压缩BCD若将若将8位用于表示两位十进制数,则称为压缩的位用于表示两位十进制数,则称为压缩的BCD码,表示格式如图所示。它所表示的数的范码,表示格式如图所示。它所表示的数的范围是围是0-99。55/148例如,若用例如,若用4 4个字节表示十进制数个字节表示十进制数43214321用非压缩的用非压缩的BCDBCD码表示时是码表示时是0000010000000100, 0000001100000011, 0000001000000010, 0000000100000001;写成十六进制的形式写成十六进制的形式: 04H: 04H、03H03H、02H02H、01H01H;用压缩
41、的用压缩的BCDBCD码表示时,为:码表示时,为:0100001101000011,0010000100100001;写成十六进制的形式:写成十六进制的形式:43H43H、21H21H。56/148 尽管在尽管在84218421码中码中09,1009,10个数码的表示形个数码的表示形式与用二进制表示的形式一样,式与用二进制表示的形式一样,但这是两个但这是两个完全不同的概念,不能混淆。完全不同的概念,不能混淆。 如 , 十 进 制 数如 , 十 进 制 数 3 93 9 可 表 示 为可 表 示 为 ( 0 0 1 1 ( 0 0 1 1 1001)1001)84218421或或100111B1
42、00111B, 两者是完全不同的。两者是完全不同的。57/148四、非数值数据的编码四、非数值数据的编码 计算机不仅能对数值数据进行处理,还能计算机不仅能对数值数据进行处理,还能够对文本和其它非数值数据信息进行处理。够对文本和其它非数值数据信息进行处理。非数值数据是指不能进行算术运算的数据,非数值数据是指不能进行算术运算的数据,如:字符、字符串、图形符号和汉字、语音如:字符、字符串、图形符号和汉字、语音与图像等多种数据。与图像等多种数据。这些信息在传送时,不是直接传送和处理其这些信息在传送时,不是直接传送和处理其原值,而是先按照某种规则进行一定的处理,原值,而是先按照某种规则进行一定的处理,以
43、便使之具有通用的传送格式。经过这种处以便使之具有通用的传送格式。经过这种处理的数值信息,称为编码。理的数值信息,称为编码。58/1481 1、ASCIIASCII编码编码处理文本文件时,每个字符都由其相应的处理文本文件时,每个字符都由其相应的标准字模构成,文本文件本身并不包括这标准字模构成,文本文件本身并不包括这些字模,而只是使用其编码来表示每个字些字模,而只是使用其编码来表示每个字符。符。例如,使用区位编码的中文编辑时,例如,使用区位编码的中文编辑时,4 4位十位十进制区位码可以表示一万个不同的字符。进制区位码可以表示一万个不同的字符。国际上通用的标准字符编码为国际上通用的标准字符编码为AS
44、CIIASCII码码( A m e r i c a n S t a n d a r d C o d e f o r ( A m e r i c a n S t a n d a r d C o d e f o r Information InterchangeInformation Interchange,ASCII)ASCII),即美,即美国标准信息交换码。国标准信息交换码。59/148ASCIIASCII码共定义了码共定义了256256个代码(从个代码(从0-2550-255)从从0-320-32位为控制字符(位为控制字符(ASCII control ASCII control charac
45、terscharacters)从从33-12733-127位为可打印字符(位为可打印字符(ASCII printable ASCII printable characterscharacters)从从0-1270-127是标准的是标准的ASCIIASCII编码编码从从128-255128-255是扩展的是扩展的ASCIIASCII编码编码60/148标准标准ASCIIASCII码:用码:用7 7位二进制编码表示位二进制编码表示8787个字符个字符 2626个小写英文字母个小写英文字母 :41H5AH41H5AH 26 26个大写英文字母个大写英文字母 :61H7AH61H7AH 10 10个数
46、字码(个数字码(0909):):30H39H30H39H 25 25个特殊字符:,个特殊字符:, ,等,等 共计共计8787个字符。个字符。61/148 附录附录A A为为ASCIIASCII码字符表,它用码字符表,它用8 8位二进制位二进制数表示字符代码。其基本代码占数表示字符代码。其基本代码占7 7位,第位,第8 8位位可用作奇偶校验,通过对奇偶校验位设置可用作奇偶校验,通过对奇偶校验位设置“1”1”或或“0”0”状态,保持状态,保持8 8位字节中的位字节中的“1”1”的个数的个数总是奇数(称为奇校验)或偶数(称为偶校总是奇数(称为奇校验)或偶数(称为偶校验),一般用于字符或数字的串行传送
47、时检验),一般用于字符或数字的串行传送时检测传送过程中是否出错。测传送过程中是否出错。62/1482 2、汉字编码、汉字编码汉字输入编码汉字输入编码 汉字信息处理系统一般包括编码、输入、汉字信息处理系统一般包括编码、输入、存储、编辑、输出和传输。存储、编辑、输出和传输。编码是关键编码是关键。不。不解决这个问题,汉字就不能进入计算机。汉解决这个问题,汉字就不能进入计算机。汉字输入编码是用计算机标准键盘上按键的不字输入编码是用计算机标准键盘上按键的不同排列组合来对汉字进行编码。同排列组合来对汉字进行编码。 63/148常用的输入编码有数字、字音、字形常用的输入编码有数字、字音、字形和音形编码等。和
48、音形编码等。数字编码:如电报码、区位码等。无重码,但数字编码:如电报码、区位码等。无重码,但难记。难记。字音编码:以汉语拼音作为编码基础。简单易字音编码:以汉语拼音作为编码基础。简单易学,但重码很高,如搜狗拼音、全拼、双拼等。学,但重码很高,如搜狗拼音、全拼、双拼等。字形编码法:如五笔字型码、郑码等。具有重字形编码法:如五笔字型码、郑码等。具有重码少的优点。码少的优点。音形编码法:音形编码吸取了音码和形码的优音形编码法:音形编码吸取了音码和形码的优点,使编码规则简化,重码少。常用的有全息点,使编码规则简化,重码少。常用的有全息码等。码等。64/148汉字国标码汉字国标码 汉字国标码即国标码,是
49、不同汉字信息处理系统汉字国标码即国标码,是不同汉字信息处理系统间进行汉字交换时所使用的编码。国标码以国家标间进行汉字交换时所使用的编码。国标码以国家标准局颁布的准局颁布的GB2312-80GB2312-80规定的汉字交换码作为标准汉规定的汉字交换码作为标准汉字编码。共收录字编码。共收录74457445个。个。在字符集中,汉字和字符分在字符集中,汉字和字符分94个区,每区个区,每区94位。位。每个汉字及字符用两个字节表示,前一个字节每个汉字及字符用两个字节表示,前一个字节为区码,后一字节为位码,各用两位为区码,后一字节为位码,各用两位16进制数进制数字表示。这就是所谓的汉字区位码。字表示。这就是
50、所谓的汉字区位码。汉字区位码并不等于汉字国标码,两者间的关汉字区位码并不等于汉字国标码,两者间的关系可用以下公式表示:系可用以下公式表示: 国标码区位码(化成国标码区位码(化成16进制)进制)2020H65/148汉字机内码汉字机内码 汉字机内码简称汉字内码,是在计算机汉字机内码简称汉字内码,是在计算机外设和信息系统内部存储、处理、传输汉外设和信息系统内部存储、处理、传输汉字用的代码。字用的代码。 在西文计算机中,无交换码和内码之分,在西文计算机中,无交换码和内码之分,一般以一般以ASCIIASCII码作为内码。英文字符的机内码作为内码。英文字符的机内码是码是7 7位位ASCIIASCII码,