非数值数据的编码表示
1.逻辑值、字符等数据都是非数值数据,在机器内部它们也用二进制表示。
2.逻辑值
2.1逻辑数据
1.需要将一个n位数据看成由n个1位数据组成,每个取值为0或1。
2.需要储存一个布尔或二进制数据阵列,阵列中的每项只能取值为1或0。
3.需要提取一个数据项中的某位进行诸如“置位”或“清零”等操作。
4.逻辑数据只能参加逻辑运算,并且是按位进行时的,如按位“与”、按位“或”、逻辑左移、逻辑右移等。
2.2
1.n位二进制可以表示n个逻辑值。
2.逻辑数据和数值数据都是一串0/1序列,形式上无差异,要通过指令的操作码类型来识别它们。
3.西文字符
1.西文由拉丁字母、数字、标点符号及一些特殊符号组成,它们统称为字符。所有字符的集合叫做字符集。字符不能直接在计算机内部进行处理,必须对其进行数字化编码。
2.码表中的代码具有唯一性。
3.字符集有多种,每个字符集的编码方法也多种多样。
4.每个字符都由7个二进位表示。
数据的宽度和存储
1.数据的宽度和单位
1.1比特是计算机中处理、存储传输信息的最少单位
1.2在计算机内部,二进制信息的计量单位是字节,也称位组。一个字节等于8个比特
1.3字长通常是指CPU内部用于整数运算的数据通路的宽度
1.4字用来表示被处理信息的单位,用来度量各种数据类型的宽度
2,数据的存储和排列顺序
2.1多字节数据存放在连续的字节序列中,各字节在连续字节系列中的排列顺序不同,有两种排列方式:大端和小端
2.2大端方式将数据的最高有效字节MSB存放在低地址单元中,将最低有效字节LSB存放在高地址单元中,小端与之相反
数据效验码
1.奇偶效验码
在奇偶校验码中,两个数据有奇数位不同,则校验码不同,若偶数位不同,校验码相同,但至少有两个数据位不同,所以任意两个码字之间至少有两位不同,码距d=2
根据码距和检错能力关系可知,奇偶校验码只能检测奇数位错,不能发现偶数位出错,也不能确定出错位置,所以不具有纠错能力,因为所用的开销小,奇偶效验码常用于存储器读写检查或按字节传输过程中的数据效验
2.海明效验码
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)
3.循环冗余效验码
3.1循环冗余码效验简称CRS码,是一种具有较强检错、纠错能力的效验码,常用于外存储器的数据效验,通过某种数学运算在数据和效验位之间建立约定关系。