1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,教学进度,计算机科学与工程系,本文档所提供的信息仅供参考之用,不能作为科学依据,请勿模仿。文档如有不当之处,请联系本人或网站删除。,第二章 计算机信息基础,我们说计算机是用二进制来表示信息的,那么到底什么叫二进制数呢?和我们常用的数的形式之间有什么关系呢?如果我们写一个文档,其中的数字、字符、汉字与一连串的,0,和,1,有什么关系呢?在计算机系统中,各种数据在存储、加工和传输时又是如何以电子元件的不同状态来表示呢?,引言,本章讨论的问题,第二章 计算机信息基础,熟悉计算机中的数据的运算及表达方式。,对计算机
2、计算有初步的了解和整体的认识。,知识点,数制转换,二进制,实数表示,整数编码,ASCII,编码,汉字编码,教学目的,理解计算机中信息输入、编码、存储、转换过程。,2.1,计算机所使用的数制,2.1.1,数制的概念,基数:,R,进制的基数,=R,位权:是一个与数字位置有关的常数,位权,=R,n,其中,n,取值:以小数点为界,向左,0,,,1,,,2,,,3,,向右,-1,,,-2,,,-3,常用数制,十进制,二进制,八进制,十六进制,数字符号,0,9,0,,,1,0,7,0,9,A,B,C,D,E,F,基 数,10,2,8,16,进制是一种计数方法,一般用于刻画事物间的数量关系,是人们在长期实践
3、中发现和发明的。例如,传说十进制是人类通过十个手指头进行计数而发明的。因为我们的祖先也用过十六进制,所以才有了今天半斤八两的说法。,2.1,计算机所使用的数制,2.1.2,计算机为什么要采用二进制?,我们知道,在电气元件中很容易实现两种稳定状态,,如,电,压,高低、晶体管导通与截止、电灯亮与灭。,如果用一盏灯表示,0,9,这十个数就很困难了。也许有人会说,用灭来表示,0,,亮一点表示,1.,最亮为,9,,那么请问怎样才能区分亮一点或更亮一点?,由于技术上的原因,计算机不得不最终选择,二进制。,亮 灭,1 0,例,如,:有两只灯,泡,,分别表示亮与灭。,0 1 2 3 (,十进制,),0 0 0
4、 1 1 0 1 1 (,二进制,),2.1,计算机所使用的数制,计算机选择二进制可以从以下方面说明:,(1),电路简单,:,0,、,1,两种状态在技术上轻而易举。,(2),可靠性高:只有两种状态,传输各处理时不易出错。,(3),运算简单:二进制数运算比较简单。如二进制乘法运算只有,3,种:,10=0,;,01=0,;,11=1,若采用十进制,则有,55,种,(,九九乘法口诀,),。,(4),逻辑性强:只有,0,和,1,,可表示逻辑上的“真”、“假”。,(5),数据存储:通过磁盘的磁极的取向,(,南极、北极,),、光盘表面的凹凸、光照有无反射等,二进制形式很容易在物理上实现数据的存储。,2.1
5、计算机所使用的数制,对于用户,通常还是用十进制与计算机交往,然后由计算机自动实现十进制与二进制转换。,然而,在二进制位数和十进制数字之间没有显然的关系。为了克服这个问题,发明了两种位置化系统:十六进制和八进制。,八进制和十六进制与二进制恰巧有倍数关系,,即,1位八进制数等于3位二进制数,1位十六进制数等于4位二进制数。由于八进制或十六进制与二进制之间的转换很直观和简单,在认知上接近二进制,这些原因促进人们引入八进制和十六进制。但在计算机内部,数据全部,都,是以二进制的形式存储和加工的。,采用二进制后,进入计算机中的各种数据的编码都要进行二进制转换,同样从计算机输出的数据需要进行逆转换。,2.
6、1,计算机所使用的数制,十进制,二进制,八进制,十六进制,0,0,0,0,1,1,1,1,2,10,2,2,3,11,3,3,4,100,4,4,5,101,5,5,6,110,6,6,7,111,7,7,8,1000,10,8,9,1001,11,9,10,1010,12,A,11,1011,13,B,12,1100,14,C,13,1101,15,D,14,1110,16,E,15,1111,17,F,16,10000,20,10,常 用 数 制 的 对 应 关 系,2.1,计算机所使用的数制,2.1.3,二进制的运算,二进制的算术运算,加:,0+0=0,0+1=1,1+0=1,1+1=1
7、0,减:,0-0=0,0-1=1,1-0=1,1-1=0,乘:,00=0,01=0,10=0,11=1,除:,00=0,01=0,10,(,无意义,),11=1,本位为,0,,向高位进位,1,本位为,1,,向高位借,1,当,2,二进制的逻辑运算,与,AND,:,00=0,01=0,10=0,11=1,或,OR,:,00=0,01=1,10=1,11=1,非,(,取反,),:,0=1,1=0,0,表示“假、否”,,1,表示“真、是”,2.1,计算机所使用的数制,十进制数,二、八、十六进制的转换,由一种数制转换成另一种数制,2.1,计算机所使用的数制,2.1.3,二进制和其它进制的转换,十进制 二
8、进制、八进制、十六进制,十进制转二进制:整数部分除以,2,取余,直至商为,0,;小数部分乘以,2,取整,直至小数部分为,0,或达到所需精度为止。,十进制转八进制:方法同上。整数部分除以,8,,小数部分乘以,8,。,十进制转十六进制:方法同上。整数部分除以,16,,小数部分乘以,16,。,2.1,计算机所使用的数制,十进制,整数,二进制,整数,2 75,1,2 37,1,2 18,0,2 9,1,2 4,0,2 2,0,2 1,1,0,结果为:,1001011,十进制,小数,二进制,小数,0.6875,2,1,1.3750,2,0,0.7500,2,1,1.5000,2,1,1.0000,结果为
9、0.1011,(75.6875),10,=(1001011.1011),2,2.1,计算机所使用的数制,十进制,整数,八进制,整数,结果为:,113,十进制,整数,十六进制,整数,结果为:,4B,8 75,3,8 9,1,8 1,1,0,16 75,B,16 4,4,0,2.1,计算机所使用的数制,例:,(1011.1),2,=,二进制、八进制、十六进制 十进制,位权相加法,:,各位数码乘位权,再相加。,2.1,计算机所使用的数制,12,3,+02,2,+12,1,+12,0,+12,-1,=8+0+2+1+0.5,=(11.5),10,例:,(AB.1),16,=,1016,1,+111
10、6,0,+116,-1,=16+11+1/16,=(27.0625),10,整数部分从右向左,小数部分从左向右,每,3,位二进制一组,变为,1,位八进制。,不足,3,位时分别在最左端和最右端补,0,凑够,3,位。,二进制数 八进制数,2.1,计算机所使用的数制,例:,(1100101001011.1101),2,=,(14513.64),8,每,1,位八进制,变为,3,位二进制。,例:,(16347.52),8,=,八进制数 二进制数,(001 110 011 100 111.101 010),2,(1110011100111.10101),2,二进制 十六进制,整数部分从右向左,小数部分从左
11、向右,每,4,位二进制一组,变为,1,位十六进制。,不足,4,位时分别在最左端和最右端补,0,凑够,4,位。,十六进制 二进制,每,1,位十六进制,变为,4,位二进制。,例:,(4C2.F6),16,=,2.1,计算机所使用的数制,例:,(11010111101.1010001),2,=,(6BD.A2),16,(0100 1100 0010.1111 0110),2,(10011000010.1111011),2,计算机看起来神奇、智慧,但其本质上还是一种工具。作为一种前所未有的特殊的电子装置,要在物理上实现二进制的运算,首先要解决的问题是如何物理地表示或存储二进制的两个数值符号,0,和,1
12、然后才是实现物理上的二进制运算。,2.1,计算机所使用的数制,2.1.5,二进制运算的物理实现,要理解二进制运算在物理上是怎样实现的,让我们从最基本的电信号开始。例如,用开关可以实现两种状态:当开关断开时电流被切断代表,0,;当开关接通时,电路中有电流通过,代表,1,。,表示,0,表示,1,使用开关来表示二进制数,在大多数情况下,一个二进制数由一连串的,0,和,1,组成,需要很多开关来表示这个二进制数。可以先从最简单的加法运算开始,了解其运算过程。,2.1,计算机所使用的数制,计算结果输出,二进制加法运算示例,图中,中间的方框表示运算部件,运算部件的左边和下边各有一个开关,分别用于输入两个
13、参与运算的二进制数。运算部件右边就是输出结果,可以把小灯泡接在一根输出线上,这样通过灯泡的亮和不亮来代表输出的结果是,0,还是,1,。当然,这种简单的加法器没有考虑到进位,只是用电路实现了二进制的加法,称为半加器。通过简单的半加器,进而可以实现带二进制加法进位的全加器,把多个全加器连接起来就可以进行多位二进制数的加法运算了。,加法器的内部是什么呢?怎样实现开关的自动化呢?,2.1,计算机所使用的数制,我们知道,当一根电线有电流通过时,就会在其周围产生微弱的磁场,那么就可以通过电流的有无来控制磁性的有无,继而来控制机械部分。继电器就是采用了这个原理,它通过电磁转换为机械的吸合、释放达到开关的作用
14、从而实现电路的自动导通、切断。,二进制逻辑运算是计算机实现计算的基础。布尔代数是实现逻辑运算的数学工具,然而计算机如何与逻辑关系结合起来呢?数学家香农把布尔代数的“真”与“假”和电路系统的“开”与“关”对应起来,用,1,和,0,表示,并证明了可以通过继电器电路来实现布尔代数的逻辑运算。香农还提出了实现加、减、乘、除等运算的电子电路的设计方法。这些均奠定了数字电路的理论基础。,用继电器制造的电路,可以实现逻辑运算。同样可以以晶体管为基础来描述数字电路,从而构成计算的基础,并实现更加复杂的逻辑运算。大量晶体管的使用促进了集成电路的发展,所有元件在结构上组成一个整体,使电子元件向着微小型化、低功耗
15、和高可靠性方面迈进了一大步。随着制作工艺的不断改进,又产生了大规模集成电路和超大规模集成电路,使计算机硬件越来越小、功能越来越强。,2.1,计算机所使用的数制,2.2,计算机中的数据单位,位,(bit),:,计算机存储数据的最小单元,(0,、,1),字节,(Byte),:,处理数据的基本单位,(8bit/Byte),位(,bit,),字长,字节(,Byte,),字长:,CPU,一次处理数据的二进制位数。,常用的字节计数单位:,1KB,1024 Byte (2,10,B)1MB,1024 KB (2,20,B),1GB,1024 MB (2,30,B)1TB,1024 GB (2,40,B),2
16、3,数值在计算机中的表示,符号位,:,最高位用,0,表示“正”,,1,表示“负”。,机器数,:,正负符号被数值化了的数。,真值,:,该机器数所表达的数值。,0,0,0,0,0,1,0,1,符号位,1,0,0,0,0,1,0,1,符号位,机器数,机器数,+5,真值,5,真值,2.3.1,整数的表示,在数学中,数值是用“”和“”表示正数和负数的,而在计算机中只有,0,和,1,,所以正负号也用,0,和,1,表示,即数值符号数字化。,2.3,数值在计算机中的表示,对有符号数的运算,需要通过原码、反码、补码的转换来完成。,原码,:,正号为,0,,负号为,1,,数值部分为二进制绝对值。,+5,0,0,0
17、0,0,1,0,1,原码,1,0,0,0,0,1,0,1,原码,-5,反码,1,1,1,1,1,0,1,0,反码,0,0,0,0,0,1,0,1,反码,:,正数的反码和原码相同;负数的反码是将其原码除符号位外各位取反。,补码,补码,1,1,1,1,1,0,1,1,0,0,0,0,0,1,0,1,补码,:,正数的补码和原码相同;负数的补码是将其反码在末位加,1,。,2.3,数值在计算机中的表示,补码的概念是怎么来的?,补码与“模”的概念有关。,“模”是指一个系统所能表示的数据个数。按模运算是指运算结果超过模时,模,(,或模的整数倍,),将溢出而只剩下余数。,例如,:8,位二进制的模为,2,8,
18、256,假设,M,为模,若数,a,,,b,满足,a,b,M,,则称,a,,,b,互为补数。在有模运算中,减去一个数等于加上这个数对模的补数。,2.3.2,实数的表示,2.3,数值在计算机中的表示,在计算机中,实数的小数点是不占位置的,但又隐含规定了小数点的位置。根据小数点的位置不同,实数的表示采用了定点数和浮点数两种方式。,其中:,小数点位置固定的数称为定点数。,小数点位置不固定的数称为浮点数。,定点数,定点数又分为定点整数和定点小数。,定点整数:定点整数是纯整数,其符号位右边所有的位数表示的是一个整数。小数点隐含固定在数值部分最右端。,2.3,数值在计算机中的表示,定点整数:,(,-3,)
19、1,0,0,0,0,0,1,1,隐含小数位,符号位,2.3,数值在计算机中的表示,定点小数:定点小数是纯小数。小数点隐含固定在数值部分最左端。,定点数表示法简单直观,但是用定点数表示数值受到字长限制,因此表达的数值数据的范围和精度是有限的。为了方便地表示更大范围的数据以及更高的精度,在现代的计算机系统中,通常采用浮点数表示来解决这类问题。,0,1,0,0,0,0,0,0,定点小数:,(,+0.5,),符号位,隐含小数位,浮点数,小数点位置不固定的数称为浮点数,它既有整数部分又有小数部分,如,123.55,、,33.789,等。,在计算机中通常把浮点数分成阶码和尾数两部分来表示,也就是平时所说
20、的科学记数法。通常需要对尾数进行规格化处理,即保证尾数的最高位为,1,,实际数值通过阶码进行调整。,例如,二进制实数,1010.1101,可以用,0.101011012,100,表示。,(,注,:100,等同于十进制的,4),2.3,数值在计算机中的表示,规格化的形式:尾数的绝对值大于等于,0.1,并且小于,1,,从而唯一地规定了小数点的位置。,例,:将十进制数,+55,以浮点数格式存放,(,浮点数的字长,4,字节,),。,(55),10,=(110111),2,=0.110111*2,110,尾数最高位为,1,31 30 25 24 23 22 7 0,0,0,0,0,0,1,1,0,0,1
21、0,0,0,1,0,1,0,0,阶码部分,尾数部分,阶码符号位,尾数符号位,1,1,0,(,注,:110,等同于十进制的,6),2.3,数值在计算机中的表示,尾数,的位数决定,数的精度,;,阶码,的位数决定,数的范围。,2.4,信息编码,所谓编码,就是利用数字串来标识所处理对象的不同个体。计算机采用的是二进制,这就意味着所有需要计算机处理的信息,如数值、字母、汉字、符号、声音、图像等,都要用,0,和,1,组成的二进制编码形式来表示。在计算机系统中通常采用统一的编码方式,因此制定了编码的国家标准或国际标准。如,BCD,码、,ASCII,码、汉字编码、图形图像编码等。计算机使用这些编码在计算机内
22、部和外部设备之间以及计算机之间进行信息交换。,编码和数是完全不同的!,2.4.1,十进制数的编码,BCD,码,BCD,码,(8421,码,),:二十进制编码,用,4,位二进制码表示,1,位十进制数。,(,不能参与运算,),例:,(13579),10,=(0001 0011 0101 0111 1001),BCD,(0110 1000 0000.0010 0100),BCD,=(680.24),10,2.4,信息编码,用,4,位二进制码表示一位十进制数,根据不同的选取方法,可以编制出多种,BCD,码,如,8421,码、,5421,码、,2421,码、,5211,码和余,3,码,其中,8421,码
23、最为常用。若非特别指定,,BCD,码就是,8421BCD,码。,2.4.2,西文字符的编码,ASCII,码,128,个常用字符,用,7,位二进制编码,占一个字节,最高位,0,。,其中,,0,31,和,127,为控制字符:,33,个;普通字符:,95,个。,2.4,信息编码,b,6,b,5,b,4,b,3,b,2,b,1,b,0,000,001,010,011,100,101,110,111,0000,NUL,DLE,SP,0,P,p,0001,SOH,DC1,!,1,A,Q,a,q,0010,STX,DC2,“,2,B,R,b,r,0011,ETX,DC3,#,3,C,S,c,s,0100,E
24、OT,DC4,$,4,D,T,d,t,0101,ENQ,NAK,%,5,E,U,e,u,0110,ACK,SYN,&,6,F,V,f,v,0111,BEL,ETB,7,G,W,g,w,1000,BS,CAN,(,8,H,X,h,x,1001,HT,EM,),9,I,Y,i,y,1010,LF,SUB,*,:,J,Z,j,z,1011,VT,ESC,+,;,K,k,1100,FF,FS,N,n,1111,SI,US,/,?,O,_,o,DEL,(,A,merican,S,tandard,C,ode for,I,nformation,I,nterchange),2.4.3,汉字编码,(1),汉字输
25、入码:通过键盘输入的汉字编码。,数字编码:如区位码;,拼音编码:如全拼、智能,ABC,、微软拼音等;,字形编码:如五笔字型等。,2.4,信息编码,(2),区位码和国标码,1980,年颁布,(GB2312-80),,是中文信息处理的国家标准,是使用简体中文的地区使用的中文编码。,2.4,信息编码,该编码共收录,682,个符号,,6763,个简体汉字,其中一级汉字:,3755,个,以拼音排序;二级汉字:,3008,个,以偏旁排序。,所有汉字分,94,个区,每个区,94,个汉字。由此构成区位码。而区位码的区码和位码各加,32,就得到国标码。,国标码:每个汉字占两个字节的编码,且每个字节最高位均为,0
26、是由区位码演变过来的。,区位码无法用于汉字通信,因为它可能与通信使用的控制码即,ASCII,码中的,031,发生冲突。因此,,GB2312,编码是通过对区位的简单变换而得到的。,部分区位码编号,:,2.4,信息编码,区号,:01【,各类符号,】,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19,0100,、。,-,0120 ,【】,0140 ,0160 ,0180 ,区号,:02【,各类数字,】,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19,0200 ,0220 ,0240 ,0260
27、0280 ,区号,:03【,符号、字母,】,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19,0300,!¥(),,0320,:;?,0340,0360,0380,区号,:06【,罗马字母,】,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19,0600 ,0620 ,0640 ,0660 0680,(3),机内码,计算机内部存储和加工汉字所用的编码。不管用哪一种输入法输入的汉字,在计算机内部都是先转换成国标码再由国标码转换成机内码来表示的。每个汉字的机内码占两个字节,每个字节最高位为,1,。,
28、2.4,信息编码,汉字:中,国标码:,(01010110 01010000),2,(8680),10,机内码:,(11010110 11010000),2,区位码:,5448,注,:,十进制表示的国标码的每个字节减,32,即得区位码。,点阵,汉字,:,每一个汉字以点阵形式存储,有点的地方为,“,1,”,,空白的地方为,“,0,”,。,有,1616,、,2424,、,4848,点阵等。,点阵越大,字形分辨率越好,字形也越美观,但汉字存储的字节数就多,字库也就越庞大。,2.4,信息编码,(4),汉字字形码,汉字存储在计算机内采用机内码,但输出时必须转换成字形码,再根据字形码输出汉字。字形码又称汉字
29、字模,用于在显示器或打印机上输出各种文字和符号。通常有两种:,矢量,汉字,:,将汉字的笔画轮廓用一组直线和曲线来勾画,并记录存储每一直线和曲线的数字描述,(,端点及控制点的坐标,),。在需要输出时,根据字形轮廓的描述计算出汉字点阵。矢量产生的汉字即使放大仍能保持较好的质量。,2.4,信息编码,汉字字库:一般都存放在磁盘上,这种字库称为,“,软字库,”,,使用时根据汉字内码到字库中找到相应的字形码,然后调入内存并显示或打印。,矢量汉字轮廓描述,计算机处理汉字的基本过程:,2.4,信息编码,(5),其它编码,GBK,编码:是对,GB2312,的扩充。仍采用双字节编码,在此基础上对罕见汉字使用四字节
30、编码,共收录了,2.7,万个汉字,与国标码兼容,同时收录了藏、蒙、维吾尔等主要少数民族文字。,BIG5,码:台湾、香港等地区使用的繁体汉字编码标准。,自动转换,字节最高位置“,1”,转换(调用汉字字库),2.4.4,编码运算,字符编码参与运算吗?答案是肯定的。,字符编码的减法运算是最基本的。两个字符编码之差的结果是它们在编码表中的距离,利用这个结果可以判断两个编码是否代表同一个字符。即两个编码的差为,0,时,它们代表同一个字符。两个字符编码之和在一般情况下没有意义,但一个字符编码加上一个整数,n,,可得到编码表中该字符之后第,n,个字符的编码。,更重要的运算是定义在字符串上的。字符串运算以函数
31、形式给出,利用函数可以统计一个文本中包含的字符数目;可以将两个字符串拼接在一起,形成一个新字符串,2.4,信息编码,2.4.5,多媒体信息的数字化,数字化就是对模拟世界的一种量化,表示信息的最小单位是位,(bit)“0”,或“,1”,。多媒体信息在计算机中也要转换为,0,和,1,。也就是说无论是文字、图像、声音或视频,经数字化后都可分解为一系列,0,或,1,的排列组合。各种多媒体信息在进入到计算机中时需要进行数字化处理,输出时再将其还原成各自本身的特性呈现在我们面前。,2.4,信息编码,2.4,信息编码,数值,西文,汉字,声像,十,二进制转换,ASCII,码,输入码,机内码,模数转换,数值,西
32、文,汉字,声像,十,二进制转换,ASCII,码,输入码,机内码,模数转换,数值,西文,汉字,声像,二,十进制转换,西文形码,汉字字形码,数模转换,内存,各种多媒体信息的数字化处理过程示意图,计算机中的,0,和,1,串可以被解释成数字、字符、汉字、图像、音频以及指令等多种情况,计算机系统根据具体情况进行相应解释。例如,存储器某个单元的内容是,01100001,,它表示的是字母“,a”,还是数字,97,呢?这个问题的解决留给了程序设计。,2.5,计算思维的典型案例,案例,1,:,现实世界可以用,0,和,1,来表示,而,0,和,1,可以进行逻辑与算术运算,实现运算的过程可以通过电子技术来完成,(,用
33、继电器制造的电路,可以实现简单的逻辑运算;以晶体管为基础制造的电路,可以实现复杂的逻辑运算;而电子元件的集成化,则可以实现更为复杂的逻辑运算,),。,具体来说,,0,和,1,的思维蕴含着:信息表示。数值信息和非数值信息均可用,0,和,1,表示,且均能够被计算,被符号化和数字化。物理世界可抽象为符号,进而用,0,和,1(,进位制与编码,),表示,由,0,和,1,表示的数字化信息可以实现算术运算与逻辑运算,所有的过程是通过计算机硬件与软件的结合来实现的。即任何事物只要能表示成信息,就能够表示成,0,和,1,,也就能够被计算,也就能够被计算机所处理。,人的思想是无限的,要表示的内容也是无穷的,所以,
34、利用,0,和,1,进行创造的可能性也是无限的。,2.5,计算思维的典型案例,案例,2,:,递归是计算思维的方法之一。当我们通过键盘将字母“,A”,输入到计算机,在计算机内部它将以二进制代码形式存储,但从显示器或打印机输出的依然是字母“,A”,,由此体现了一种递归的方式。,究竟什么是递归呢?其实,递归就是一条蛇咬住自己的尾巴。递归是指一样东西自己包含了自己。例如,有一个家庭,夫妇俩生养了,6,个孩子。一日,家里来一客人,见了这一群孩子,难免喜爱和好奇。遂问老大:“你今年多大了?”,老大脑子一转,故意说:“我不告诉你,但我比老二大,2,岁”。客人遂问老二:“你今年多大了?”,老二也调皮地说:“我也
35、不告诉你,我只知道比老三大,2,岁”。,,客人挨个问下去,孩子们的回答都一样,轮到最小的老六时,他诚实地回答:“,3,岁啦”。客人马上就知道老五的年龄了,再往回就轻易地推算出了老四、老三、老二和老大的年龄了,这就是递归。递归在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述用相似方法重复事物的过程。,2.5,计算思维的典型案例,案例,3,:,当数据被储存在硬盘或传送到网络上时,它们一般是不会发生改变的。不过,有时候一些故障也会导致数据值突然改变,比如电子干扰。而避免这类事件的发生至关重要。利用类似奇偶校验的方法,可以保护计算机中几乎所有的数据。数据硬盘、,CD,
36、DVD,、闪存、网络下载、电子邮件和网页都在数据中添加了你看不到的校验码。一旦系统中个别比特发生错误,计算机就会在你不知情的情况下自动恢复原始数据。这充分体现了计算思维是按照预防、保护、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方法。,奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“,1”,的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。至于采用何种校验则是事先规定好的。,2.5,计算思维的典型案例,在本章中,介绍了,ASCII,码为,7,位编码,占,1,个字节,空出来的最高位通常为,0,。但在需要传输数据时可以用作奇偶校验的校验
37、位。例如偶校验时,若,7,位,ASCII,码中“,1”,的个数为偶数,则校验位置为“,0”,;若,7,位,ASCII,码中“,1”,的个数为奇数,则校验位置为“,1”,。这样就可以保证传送数据满足偶校验的要求。在接收方收到数据时,将按照奇校验的要求检测数据中“,1”,的个数,如果是偶数,表示传送正确,否则表示传送错误。奇偶校验位是最简单的错误检测码。,学习完本章后,请思考并讨论以下提出的几个问题:,1,假设有两支友军夜间在一条河的两岸并行行军。为了保持行动一致,他们必须进行通信。双方预先确定了,53,条通信密语。两支军队都没有带通信设备,但带了至少,8,支手电筒。请为他们设计一种通信方案。,2,举例说明身边的某一编码,说说其编码方式、规则与取值范围,写出自己的看法与认识。,3,对下列,ASCII,码进行译码。,01001110 01101001 01101000 01100001 01101111 00100001,01001010 01101001 01100001 01111001 01101111 01110101 00100001,4,对于下面一组不同编码的数,请按照从小到大的顺序排列。,(+01110),原,(01101),补,(10110),反,(10000),反,(10110),原,(10010),补,






