预习非数值数据的编码方式
非数值数据的编码表示
逻辑值
- 逻辑值,字符等数据都是非数值数据
- 逻辑数据和数值数据都是0/1序列,在形式上无任何差异,需要通过指令的操作码类型来识别他们
- 逻辑值只能参与逻辑运算,并且是按位“与”,按位“或”,逻辑左移,逻辑右移等
西方字符
- 由拉丁字母,数字,标点符号以及一些特殊符号表示,它们统称为字符(character)
- 所有的字符集合叫做字符集
- 目前计算机中使用最广泛的西文字符集及其编码是ASCII码,即美国标准信息交换码
汉字字符
- 汉字系统必须处理以下几种汉字代码:输入码、内码、字模点阵码。
汉字的输入码
- 汉字输入码也称外码,是为将汉字输入到计算机设计的代码。汉字输入码种类较多,选择不同的输入码方案,则输入的方法及按键次数、输入速度均有所不同。综合起来,汉字输入码可分为流水码、拼音类输入法、拼形类输入法和音形结合类输入法几大类。
字符集和汉字内码
- 西方字符:内码是ASCII
- 汉字内码:
1.不能有二义性,即不能和ASCii码有相同的编码
2.要和汉字在字库的位置有关系,一边于汉字的处理,查找
3.编码尽量短
- 采用GB 2312国际字符集:
(1)字母、数字和各种符号,包括英文、俄文、日文平假名与片假
名、罗马字母、汉语拼音等共687个
(2)一级常用汉字,共3755个,按汉语拼音排列
(3)二级常用汉字,共3008个,不太常用,按偏旁部首排列
- 汉字的区位码
1.码表由94行、94列组成,行号为区号,列号为位号,各占7位
2.指出汉字在码表中的位置,共14位,区号在左)位号在右
3.汉字的国标码
4.每个汉字的区号和位号各自加上32(20H),得到其“国标码”
5.国标码中区号和位号各占7位。在计算机内部,为方便处理与存储,前面添一个0,构成一个字节
校验码的方式:
-
奇偶校验码:是一种增加二进制传输系统最小距离的简单和广泛采用的方法。奇偶校验可描述为:给每一个码字加一个校验位,用它来构成奇性或偶性校验。可以看出,附加码元d2,是简单地用来使每个字成为偶性的。因此,若有一个码元是错的,就可以分辨得出,因为奇偶校验将成为奇性。奇偶校验编码通过增加一位校验位来使编码中1个个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。因为其利用的是编码中1的个数的奇偶性作为依据,所以不能发现偶数位错误。
-
海明校验码:它不仅具有检测错误的能力,同时还具有给出错误所在准确位置的能力 但是因为这种海明校验的方法只能检测和纠正一位出错的情况。所以如果有多个错误,就不能查出了。 假设为k个数据位设置r个校验位,则校验位能表示2^r个状态,可用其中的一个状态指出 "没有发生错误",用其余的2 ^r -1个状态指出有错误发生在某一位,包括k个数据位和r个校验位,因此校验位的位数应满足如下关系:
2^r ≥ k + r + 1 (2.7)
如要能检出与自动校正一位错,并能同时发现哪位错,此时校验位的位数r和数据位的位数k应满足下述关系:
2^r-1 ≥ k + r (2.8) -
循环校验码:循环冗余校验码由信息码n位和校验码k位构成。k位校验位拼接在n位数据位后面,n+k为循环冗余校验码的字长,又称这个校验码(n+k,n)码。 [4]
n位信息位可以表示成为一个报文多项式M(x),最高幂次是xn-1。约定的生成多项式G(x)是一个k+1位的二进制数,最高幂次是xk。将M(x)乘以xk,即左移k位后,除以G(x),得到的k位余数就是校验位。这里的除法运算是模2除法,即当部分余数首位是1时商取1,反之商取0。然后每一位的减法运算是按位减,不产生借位。