预习非数值数据的编码方式
1.非数值数据的类型
逻辑值、字符等数据都是非数值数据,在机器内部它们用二进制表示。
(1)逻辑值
每个字或是其他可寻址单位(字节、半字)是作为一个整体数据单元。逻辑数据和数值数据都是一串0/1序列。逻辑运算指令处理的是逻辑数据,算术运算指令处理的数值数据。
(2)西文字符
西文由拉丁字母、数字、标点符号以及一些特殊的符号所组成,统称为字符。所有字符的集合叫做字符集,字符不能直接在计算机内部进行处理,要对其进行数字化编码。西文只需要对有限的字母和数学符号、标点符号等进行编码,所以总数不会超过256个
(3)汉字字符
汉字的输入码的码元是西文键盘的某个按键。要与汉字在字库中的位置有关系,以便于汉字的处理、查找
2.编码的区别
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。
3.校验码的方式
(1).奇偶校验码
每位异或判断是奇数个1还是偶数个1。奇偶校验码是奇校验码和偶校验码的统称.
它们都是通过在要校验的编码上加一位校验位组成. 如果是奇校验加上校验位后,编码中1的个数为奇数个。如果是偶校验加上校验位后,编码中1的个数为偶数个。
(2).海明校验码
海明码也是利用奇偶性来校验数据的. 它是一种多重奇偶校验检错系统,它通过在数据位之间插入k个校验位,来扩大码距,从而实现检错和纠错.
它的实现原理,是在k个数据位之外加上r个校验位,从而形成一个k+r位的新的码字,使新的码字的码距比较均匀地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。但是因为这种海明校验的方法只能检测和纠正一位出错的情况。所以如果有多个错误,就不能查出了。
(3).循环冗余校验码
简称CRS码,是一种具有较强检错、纠错能力的效验码,常用于外存储器的数据效验
循环冗余码效验通过某种数学运算在数据和效验位之间建立约定关系,主要用于对大批量数据的存储或传输效验
CRC检验原理:在发送端,先把数据划分为组,假定每个组k个比特。现假定待传送的数据M=101001(k=6)。CRC运算就是在数据M后面添加供差错检验用的n位冗余码,然后构成一个帧发送出去,一共发送(k+n)位。在要发送的数据后面加n位的冗余码,虽然增加了数据传送的开销,但却可以进行差错检测。当传输可能出现差错时,付出这种代价是很值得的。