预习非数值数据的编码方式
非数值数据的编码方式
1:逻辑值:正常情况下,每个字或其他可寻址单位(字节.半字等)是作为一个整体数据单元看待的。但是,在某些时候还需将一个n位数据看成由n个1位数据组成,每个取值为0或1.
2:逻辑值.字符等数据都是非数值数据,在机器内部他们也用二进制表示,逻辑数据只能参加逻辑运算,并且是按位进行的,如按位“与”.按位“或”.逻辑左移.逻辑右移等。
3:.逻辑数据和数值数据都是一串0/1序列,在形式上无任何差异,需要通过指令的操作码类型来识别它们。列如:逻辑运算指令处理的是逻辑数据,算术运算指令处理的数值数据。
非数值数据的类型
一.西文字符
1.西文由拉丁字母、数字、标点符号及一些特殊符号组成,它们统称为字符。
2.字符主要用于外部设备和计算机之间交换信息,目前计算机中使用最广泛的西文字符集及其编码是ASCII码,即美国标准信息交换码。
ASCII码表
7个二进位b6b5b4b3b2b1b0从0000000到1111111共表示128种编码,可用来表示128个不同的字符,其中包括10个数字、26个小写字母、26个大写字母、算术运算符、标点符号、商业符号等。
ASCII字符有两个规律:
(1)字符09这十个数字字符的高3位编码为011,低4位分别为00001001。当去掉高3位时,低4位正好是0~9这10个数字的8421码。
(2)英文字母字符的编码值也满足正常的字母排序关系,而且大、小写字母的编码之间有简单的对应关系,差别仅在b5这一位上,,若这一位为0,则是大写字母;若为1,则是小写字母。
编码的区别
二.汉字字符
1.中文信息的基本组成单位是汉字,汉字也是字符。
2.汉字系统必须处理以下几种汉字代码:输入码、内码、字模点阵码。
3.汉字的输入码:利用英文键盘输入汉字,汉字的输入码的码元是西文键盘中的某个按键。
4.字符集与汉字内码必须考虑的因素:
(1)不能有二义性,即不能和ASCII码有相同的编码。
(2)要与汉字在字库中的位置有关系,以便于汉字的处理、查找。
(3)编码应尽量短。
5.GB2312国标字符集由由3部分组成:第一部分字母、数字和各种符号;第二部分为一级常用汉字;第三部分为二级常用字。
6.汉字的区位码并不是国标码,每个汉字的区号和位号必须各自加上32,这样区号和位号各自加上32后的相应二进制码才是它的国标码。
7.汉字的字形:字模点阵描述和轮廓描述。
校验码的方式
一:数据效验码
1.采用的思想是冗余校验的思想,即除原数据信息外,还增加若干位编码,这些新增的代码称为校验位。
2.当数据被存入存储器或从根部件传输时,对数据M进行某种运算(用函数F表示),以产生相应的代码是P=F(M),这里P就校验码。
3.比较的结果
(1)没有检测到错误,得到的数据位直接传送出去
(2)检测到差错,并可以纠错。数据位和比较结果一起送入纠错器,然后将产生的正确的数据位传送过去
(3)检测到错误,但无法确认哪位出错,因而不能进行纠错处理,此时,报告出错情况。
4.由若干位代码组成的一个字叫码字,将两个码字逐位比较,具有不同代码的位的个数叫做这两个码字之间的距离,也称海明距离。
5.当d<=4时,关系如下:
(1)如果码距d位奇数,则能发现d-1位错,或者能纠正(d-1)/2位错。
(2)如果码距d位偶数,则能发现d/2位错,能纠正(d/2-1)位错。
常用的数据效验码有奇偶校验码.海明校验码和循环冗余校验码.
二:奇偶效验码
1.是一种通过增加冗余位使得码字中"1"的个数恒为奇数或偶数的编码方法。
2.实现方法:在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。
三:海明效验码
将有效信息按某种规律分成若干组,每组安排一个校验位,做奇偶测试,就能提供多位检错信息,以指出最大可能是哪位出错,从而将其纠正。
四:循环冗余效验码
CRC码利用生成多项式为k个数据位产生r个校验位进行编码,其编码长度为n=k+r所以又称 (n,k)码.