一.非数值数据的编码方式
- 逻辑值:逻辑数据和数值数据都是一串0/1序列,形式没有差异,逻辑数据通过逻辑运算指令处理,数值数据通过算术运算指令处理。
- 西文字符:字符不能直接在计算机内部进行处理,所以需要对其进行数字化编码。
- 汉字字符:
1)汉字的输入码:汉字的输入码的码元是西文键盘的某个按键。
2)字符集与汉字内码:不能有二义性,即不能和ASCII码有相同的编码
二.数据的宽度和存储
1、数据的宽度和单位
- 计算机中处理、存储和传输信息的二进制最小单位:比特(bit)
- 计算机中,二进制信息的计量单位:字节(byte),1 byte = 8 bit
- 字word做单位。不同计算机中字的长度和组成不完全相同,字用来表示被处理信息的单位,用来度量各种数据类型的宽度
- 性能参数机器字长,字长等于CPU内部用于整数运算的运算器位数和通用寄存器宽度,表示进行数据运算,储存和传送的部件宽度,反应了计算机处理信息的能力
- 同一类型的数据并不是所有机器都采用相同的数据类型,分配的字节数随机器和编译器的不同二不同
2、数据的存储和排列顺序
- 多字节数据存放在连续的字节序列中,各字节在连续字节系列中的排列顺序不同,有两种排列方式:大端和小端
- 大端方式将数据的最高有效字节MSB存放在低地址单元中,将最低有效字节LSB存放在高地址单元中,小端与之相反
三.校验码的方式
1、效验码
- 除原数据信息外,还增加若干位编码,这些新增的代码称为效验码
- 由若干位代码组成的一个字叫码字,将两个码字逐位比较,具有不同代码的位的个数叫做这两个码字间的距离,也称海明距离。一种码制可能若干个码字,各码字之间的最小距离称为码距。
- 在数据效验码中,一个码字是指数据位和效验位按照某种规律排列得到的代码
- 一般来说,合理地增加效验码、增大码距,就能提高检错/纠错的能力
2、奇偶效验码(对整个数据编码生成一个校验位)
- 在奇偶校验码中,两个数据有奇数位不同,则校验码不同,若偶数位不同,校验码相同,但至少有两个数据位不同,所以任意两个码字之间至少有两位不同,码距d=2
- 根据码距和检错能力关系可知,奇偶校验码只能检测奇数位错,不能发现偶数位出错,也不能确定出错位置,所以不具有纠错能力
- 因为所用的开销小,奇偶效验码常用于存储器读写检查或按字节传输过程中的数据效验
3、海明效验码(多重奇偶校验码)
- 最终比较按位进行异或操作,根据异或操作的结果,确定是否发生了差错,这种操作得到的结果称为故障字,效验位和故障字的位数是相同的
- 校验位数的确定:假定被校验数据位数为n,校验位为k,所以障碍字也为k,则n和k满足 2^k>=1+n+k
- 分组的确定:数据位和校验位一起存储,通过它们各位排列的码字中的出错位置与故障字的数值建立关系,这样就可以通过故障字的值找到该码字中的哪一位发生了错误
a.故障字各位全部为0,没有发生错误
b.故障字有且只有一位1.则只有一个发生错误,不需要纠正
c.故障字中多位为1,表示有一个数据位出错,其位置在码字中的位置通过故障字的数值确定,纠正只需要将出错位取反。
- 校验码的生成和检错,纠错:对每组采用相应的奇偶校验,得到相应的一个校验码。
- 校验码若同时具有发现两位错和纠正一位错的能力,称为单纠错和双纠错码,简称“纠一检二”码
4、循环冗余效验码
- 循环冗余码效验简称CRS码,是一种具有较强检错、纠错能力的效验码,常用于外存储器的数据效验,通过某种数学运算在数据和效验位之间建立约定关系。