预习非数值数据的编码方式
一、非数值数据的编码方式
逻辑值:逻辑数据和数值数据都是一串0/1序列,形式没有差异,逻辑数据通过逻辑运算指令处理,数值数据通过算术运算指令处理。
西文字符:字符不能直接在计算机内部进行处理,所以需要对其进行数字化编码。
汉字字符:
1)汉字的输入码:汉字的输入码的码元是西文键盘的某个按键。
2)字符集与汉字内码:不能有二义性,即不能和ASCII码有相同的编码
数据的宽度和存储
二、数据的宽度和单位
计算机中处理、存储和传输信息的最小单位:比特(bit)
计算机中,二进制信息的计量单位:字节(byte)
1 byte = 8 bit
不同计算机中字的长度和组成不完全相同,字用来表示被处理信息的单位,用来度量各种数据类型的宽度
字长等于CPU内部用于整数运算的运算器位数和通用寄存器宽度
同一类型的数据并不是所有机器都采用相同的数据类型,分配的字节数随机器和编译器的不同二不同
2、数据的存储和排列顺序
多字节数据存放在连续的字节序列中,各字节在连续字节系列中的排列顺序不同,有两种排列方式:大端和小端
大端方式将数据的最高有效字节MSB存放在低地址单元中,将最低有效字节LSB存放在高地址单元中(小端相反)
Sun(大端方式)和Alpha(小端方式)之间不能直接进行数据传送,因为它们采用了不同的存放方式
三、数据效验码
1、效验码
除原数据信息外,还增加若干位编码,这些新增的代码称为效验码
由若干位代码组成的一个字叫码字,将两个码字逐位比较,具有不同代码的位的个数叫做这两个码字间的距离,也称海明距离
在数据效验码中,一个码字是指数据位和效验位按照某种规律排列得到的代码
一般来说,合理地增加效验码、增大码距,就能提高检错/纠错的能力
2、奇偶效验码
奇偶效验根据数据的奇偶性变化来检错,只能检测奇数个错,不具有纠错能力
奇偶效验码常用于存储器读写检查或字节传输过程中的数据效验
3、海明效验码
海明效验是分组奇偶效验,单纠错码(SCE)只能纠正一位错,“纠一检二”码(SEC-DED)可纠正一位错并检测两位数
效验位和故障字的位数是相同的
S5 S4 S3 S2 S1为00000时,无错
S5 S4 S3 S2 S1仅一位不为0时,S指定位置上的效验位出错
S5 S4 S3 S2 S1两位不为0时,数据和效验位中有两位同时出错
S5 S4 S3 S2 S1三位不为0时,有一个数据位发生了错误
S5 S4 S3 S2 S1四位或五位不为0时,出错严重
4、循环冗余效验码
简称CRS码,是一种具有较强检错、纠错能力的效验码,常用于外存储器的数据效验
循环冗余码效验通过某种数学运算在数据和效验位之间建立约定关系,主要用于对大批量数据的存储或传输效验