资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,第三章 信息编码与数据表示,数值数据的表示,3.1,浮点机器数的表示方法,数据格式,3.2,定点机器数的表示方法,3.3,3.4,非数值数据的表示,3.5,校验码,3.6,现代计算机系统的数据表示,3.7,本章小结,2,3.1,数值数据的表示,进位计数制,一,不同数制之间的相互转换,二,十进制数的编码,三,3,一、进位计数制,数制的两大要素:,基数,R,:,指在这种进位制中允许使用的基本数码个数。,基数为,R,的数制称为,R,进制数。,R,进制数的主要特点就是,逢,R,进,1,。,权,W,i,:,权也称位权,指某一位,i,上的数码的权重值,即权与数码所处的位置,i,有关。,W,i,R,i,。,假设任意数值,N,用,R,进制数来表示,形式为:,N=,(,D,m,1,D,m-2,D,0,D,-1,D,-2,D,-k,),R,其中,,D,i,为该进制的基本符号,,D,i,0,,,R-1,,,i=-k,,,-k+1,,,,,m-1,,,m,;,小数点在,D0,和,D-1,之间。,4,一、进位计数制,则数值,N,的实际值为:,例如:,R,10,,,即十进制数。它的每一位上的数码,D,i,只能取,0,,,1,,,2,,,9,;各个数码的,权为,10,i,,,i,指示数码所处的位置,个位,i,0,,,十位,i,1,,,百位,i,2,,,依此类推。,思考:二进制、八进制、十六进制?,5,一、进位计数制,例,1,:(,2345.459,),10,210,3,310,2,410,1,510,0,410,-1,510,-2,910,-3,例,2,:,(,11011.011,),2,12,4,12,3,02,2,12,1,12,-0,02,-1,12,-2,12,-3,=,(,27.375,),10,例,3,:,(,123.67,),8,18,2,28,1,38,0,68,-1,78,-2,=,(,83.859375,),10,6,二、不同,数制之间的相互转换,常用的几种数制的对应关系,1,二、八、十六进制转换为十进制,2,十进制转换为二、八、十六进制,3,7,(,1,)常用的几种数制的对应关系,十进制,二进制,八进制,十六进制,十进制,二进制,八进制,十六,进制,0,0000,0,0,8,1000,10,8,1,0001,1,1,9,1001,11,9,2,0010,2,2,10,1010,12,A,3,0011,3,3,11,1011,13,B,4,0100,4,4,12,1100,14,C,5,0101,5,5,13,1101,15,D,6,0110,6,6,14,1110,16,E,7,0111,7,7,15,1111,17,F,16,10000,20,10,8,(,2,)二、八、十六进制转换为十进制,转换方法:,加权求和。,(,按式,4,1),例:(,5AC.E6,),16,=516,2,1016,1,1216,0,1416,1,616,2,(,1452.8984375,),10,十进制(,Decimal,)、,二进制(,Binary,)、,八进制(,Octal,)、,十六进制(,Hexdecimal,),数分别用,D,、,B,、,Q,、,H,来标志。,例如:(,1011,),2,(,1011,),B,1011B1011b,(,123.45,),2,(,123.45,),D,123.45D 123.45,(,2B.D,),16,=,(,2B.D,),H,=,(,43.8125,),10,=(53.64),Q,9,(,3,)十进制转换为二、八、十六进制,转换方法,:可以分为以下两种方法,直接转换:十进制,二、八、十六进制,间接转换:十进制,二进制,八、十六进制,(,a,),十进制转化为,R,进制,(,b,),二进制转化为八、十六进制,10,(,a,),十进制转化为,R,进制,转换方法,整数部分:,除以,R,取余,先得低位,,直到商为,0,。,小数部分:,乘,R,取整,先得高位,,直到积为,0,或者达到精度要求为止。,例:(,123.75,),10,=,(?),2,(,123.75,),10,=,(?),8,1111011.11,173.6,11,小数部分的精度要求,当小数部分,不能整除为二进制,时,则乘以,2,取整的过程中,积不会为,0,;或者,当小数部分转化为二进制位数很长,,这时由精度来决定二进制位数。,例如:(,0.35,),10,(?),2,无法整除,(,0.6875,),10,(?),2,位数太长,若要求精度大于,10,,则表示“”左右两边的十进制值的差的绝对值,10,。,则我们只需取,4,位二进制小数即可满足要求,因为,10,2,时,校验码才具有,检错能力,,当码距,d,3,时,校验码才具有,纠错能力,。,码距:,一种码制的码距是指该码制中所有代码之间的最小,距离,。,两个代码之间的距离,:在一种编码中,在任何两个代码之间逐位比较,对应位值不同的个数。,校验码的检错纠错能力与码距的关系如下:,若码距,d,为奇数,如果只用来检查错误,则可以发现,d,1,位错误;如果用来纠正错误,则能够纠正 位错误。,若码距,d,为偶数,则可以发现 位错误,并能够纠正()位错误。,66,3.6,校验码,7,、常见校验码:,奇偶校验码:,码距,d=2,,检错码,,能检验奇数位错误,;通常用于磁带或者串行通信中。,海明校验码:,码距,d=3,,纠错码,,能纠正,1,位或多位错误,;通常用于磁盘冗余阵列中。,CRC,校验码:,码距,d=3,,纠错码,,能纠正,1,位错误,;通常用于磁盘或数据块的校验。,67,在有效信息位的前面或者后面添加一位奇(偶)校验位就组成了奇(偶)校验码。,奇(偶)校验码的编码和译码在硬件上通常采用异或非门(异或门)实现。,1,、编码,奇校验位的取值应该使整个奇校验码中“,1”,的个数为奇数,偶校验位的取值应该使整个偶校验码中“,1”,的个数为偶数。,假设在发送端,要发送七位,ASCII,码(,B6 B5 B4 B3 B2 B1 B0,),在,ASCII,码前面添加一位奇校验位,P,奇,或偶校验位,P,偶,变为一个字节的奇偶校验码,则它们的生成表达式为,二、奇偶校验码,68,2,、译码,在接收端,必须检验接收到的校验码信息的奇偶性,对于奇校验码,校验码中“,1”,的个数应该为奇数,否则出错;对于偶校验码,校验码中“,1”,的个数应该为偶数,否则出错。设,E,奇,为奇校验码出错信号,,E,偶,为偶校验码出错信号,为,1,出错,为,0,正确,则它们的表达式为,奇偶校验的编码电路,例如:,字符“,A”,的,ASCII,码为,41H,,奇校验码为,C1H,,偶校验码为,41H,。,二、奇偶校验码,69,二、奇偶校验码,70,三、海明码,1,、编码,海明码的编码步骤如下:,(,1,)计算校验位的位数,假设信息位为,k,位,增加,r,位校验位,构成,n=,k+r,位海明码字。若要求海明码能纠正一位错误,用,r,位校验位产生的,r,位指误字来区分无错状态及码字中,n,个不同位置的一位错误状态,则要求,r,满足:,2,r,k+r+1,计算出,k,位有效信息时,必须添加的能纠错一位的海明校验码的校验位的位数,r,71,(,2,)确定有效信息和校验位的位置,假设,k,位有效信息从高到低为,,添加的,r,位校验位为,,则它们构成,n=,k+r,位的海明码排列设为 ,,H,的下标被称为海明位号,则第,i,位的校验位,P,i,必须位于位号为,2,i-1,的位置,即 ,其中,,i=1,,,2,,,,,r,;有效信息则在其余的海明码位置上顺序排列。,三、海明码,72,三、海明码,(,3,)分组,由于海明码是分组进行奇偶校验的,每一组通过一个监督表达式来监督有效信息的变化,因此,分组必须使得监督表达式得出的指误字能够反映出错位的位号。分组的原则是:校验位只参加一组奇偶校验,有效信息则参加至少两组的奇偶校验,若,D,i,=,H,j,,则,D,i,参加那些位号之和等于,j,的校验位的分组校验。,73,三、海明码,(,4,)进行奇偶校验,合成海明码,首先,按照分组和奇偶校验的规律将每个校验位的生成表达式写出,然后,再带入有效信息的值,依次得出校验位的取值,最后将校验位按各自的位置插入,与有效信息一起合成海明码。,74,三、海明码,2,、译码,在接收端收到每个海明码后,也必须按上述分组检验每组的奇偶性有无发生变化,方法是按照监督关系式算出指误字,Sr,Sr-1 S2 S1,,若为全零,则说明各组奇偶性全部无变化,信息正确,将相应的有效信息位析取出来使用;否则,指误字的十进制值,就是出错位的海明位号。,75,四、循环冗余码,CRC,循环冗余码,CRC,(,Cyclic Redundancy Code,),又称为多项式码。,1,、编码,k,位要发送的有效信息位可对应于一个,k-1,次多项式,M,(,x,),,r,位冗余校验位对应于一个,r-1,次多项式,R,(,x,)。由,k,位信息位后面加上,r,位冗余位组成的,n=,k+r,位,CRC,码字则对应于一个,n-1,次多项式,C,(,x,),即:,C,(,x,),=,x,r,M,(,x,),+R,(,x,),该,CRC,码称为(,n,,,k,)循环码。,76,四、循环冗余码,CRC,由信息位产生冗余位的编码过程,就是已知,M,(,x,)求,R,(,x,)的过程。在,CRC,码中可以通过找到一个特定的多项式,G,(,x,)来实现。用,G,(,x,)去除,x,r,M,(,x,)得到的余式就是,R,(,x,),假设商的多项式为,Q,(,x,),编码过程 即,x,r,M,(,x,),G,(,x,),Q,(,x,),+R,(,x,),生成多项式,G,(,x,)应满足以下条件:,(1),必须是,r,次多项式,最高项,x,r,和,x,0,的系数为,1,,即它对应的二进制编码是,r+1,位的。,(2)CRC,校验码的任何一位发生错误,余数不为零;且不同位发生错误,余数不同。,(3),对余数继续模,2,除,应使余数循环。,77,四、循环冗余码,CRC,目前已经有多种生成多项式被列入国际标准中,如:,CRC-4,、,CRC-12,、,CRC-16,、,CCITT-16,、,CRC-32,等。,目前常用的,CRC-16,多项式为,x,16,+x,12,+x,5,+1,(记为,1021,),,CCITT-16,多项式为,x,16,+x,15,+x,2,+1,(记为,8005,)。,图,3.9 CRC,(,n,k,)校验码串行生成电路原理图,图中,Gi,代表生成多项式,G,(,x,)各项的系数,78,四、循环冗余码,CRC,2,、译码,接收端的校验过程就是用,G,(,x,),来除接收到的码字多项式的过程。,若余式为零则认为传输无差错;,若余式不为零则传输有差错。出错的位置与余数值是一一对应的关系,通过查找出错模式表,即可以确定是那一位出错。,79,3.7,现代计算机系统的数据表示,几种类型的数据在,Pentium,系列,CPU,中的表示形式:,1,、字符串,由字符的,ASCII,码或者文字的,Unicode,编码组成,按顺序存放在内存或寄存器中。每个,ASCII,码字符占,1,个字节,每个,Unicode,编码占用,2,个字节,80,3.7,现代计算机系统的数据表示,BCD,在基于,Pentium,系列,CPU,的,IA,构架中,,BCD,数据分为压缩的(,packed,),BCD,码和非压缩(,unpacked,)的,BCD,码两种,前者以每字节,2,位,BCD,数字的形式存储,后者以每字节,1,位,BCD,数字的方法存储,81,3.7,现代计算机系统的数据表示,3,、指针,指针实际上是内存单元的地址,因此是无符号数据。,IA,构架中定义了两种类型的指针,,(,1,)一种是,32,位的近指针,用于定义段内偏移量和段内访问;,(,2,)一种是,48,位的全指针,又称远指针,用于段间访问。,4,、浮点数,Pentium,系列,CPU,支持,IEEE 754,标准的,3,种浮点数格式:单精度、双精度和扩展精度浮点数。,82,本章小结,数制有两个要素:基数,R,与位权,W,。计算机中的信息均由二进制来表示,即,R=2,,,W=2,i,。用于表示十进制数值的二进制编码被称为,BCD,码,,4,位二进制编码表示一个十进制数字。,机器数是数值数据在机器中的表示形式,根据小数点的位置是否浮动,可以分为定点数和浮点数。,定点机器数根据小数点的隐含位置又分为,定点小数,和,定点整数,两种。,浮点机器数由阶码,E,和尾数,M,两部分构成,阶码是定点整数,尾数是定点小数;阶码,E,(即指数)的底,一般隐含为,2,。浮点机器数的小数点的位置随阶码数值而变化。,IEEE754,标准的浮点数有单精度、双精度、临时浮点数,3,种格式,分别为,32,位、,64,位和,80,位。,83,本章小结,真值转化为定点机器数时,有四种表示形式:原码、反码、补码和移码。移码主要用于表示浮点数的阶码。,计算机中的非数值数据的表示,字符数据通常采用,7,位的,ASCII,码来表示。汉字的输入编码用于使用西文标准键盘输入汉字,汉字的机内码则用于汉字的存储、检索和处理,汉字的字模码则用于汉字的显示和打印输出。,计算机中使用校验码来检错和纠错。奇偶校验码是最简单的一种检错码,它可以检查出一位或奇数位错误。海明校验码是一种多重奇偶校验码,具有纠错能力,而,CRC,校验码则是一种目前广泛使用的纠错码,可以纠错一位。,本章重点为定点机器数和浮点机器数的表示方法,。,84,The End!,85,
展开阅读全文