预习非数值数据的编码表示
一.非数值数据的编码表示
逻辑值、字符等数据都是非数值数据,在机器内部它们也用二进制表示。
1.逻辑值
正常情况下,每个字或者其他可可寻单位(字节、半字等)是作为一个整体数据单元看待的。
但是,某些时候还需要将一个n位数据看成由n个1位数据组成,每个取值为0或1。
当数据以这种方式看待时,就被认为是逻辑数据。因此n位二进制可表示n个逻辑值。逻辑数据只能参加逻辑运算,并且是按位进行的。
逻辑数据和数值数据都是一串0/1序列,逻辑运算指令处理的都是逻辑数据,算术运算指令处理的都是数值数据。
2.西文字符
西文字符由拉丁、数字、标点符号及一些特殊符号所组成,它们统称位字符。所有字符的集合叫做字符集。
字符不能直接在计算机内部处理,因而也必须对其进行数字化编码,字符集中每一个字符都有一个代码(即二进制编码的0/1序列),构成了该字符集的代码表。
码表中的代码具有唯一性。
3.汉字字符
1)汉字的输入码
对每个汉字用相应的按键进行的编码表示就成为汉字的输入码,又称为外码。
因为汉字的输入码的码元(即组成编码的基本单位)是西文键盘中的某个按键。
2)字符集与汉字内码
对于汉字内码的选择,必须考虑以下几个因素:
a.不能有二义性,即不能和ASCII码有相同的编码。
b.要和汉字在字库中的位置有关系
c.编码尽量短。
3)汉字的字模点阵码和轮廓描述
字模点阵描述:将字库中每个汉字或其他字符的字形(即字模)用一个其元素有0和1组成的方阵来表示,汉字或字符中有黑点的地方用1表示,空白处用0表示
这种用来描述汉字字模的二进制点阵数据称为汉字的字模点阵码。
轮廓描述方法:把汉字笔画的轮廓用一组直线和曲线来勾画,记下每一直线和曲线的数学表述公式。
二.数据的宽度和存储
1.数据的宽度和单位
二进制数据的每一位(0或1)是组成二进制信息的最小单位,称为一个比特(bit),或称位元,简称位。比特是计算机中处理、存储和传输信息的最小单位。
在计算机内部,二进制信息的计量单位是字节(byte),也称位组。1 byte = 8 bit。
计算机中运算和处理二进制信息时使用的单位除了比特和字节之外,还经常使用字(word)作为单位。
1KB=2^10B; 1MB=2^20B; 1GB=2^30B; 1TB=2^40B; 1PB=2^50B; 1EB=2^60B; 1ZB=2^70B; 1YB=2^80B
字长等于CPU内部用于整数运算的运算器位数和通用寄存器宽度。
字用来表示被处理信息的单位,用来度量各种数据类型的宽度;字长表示进行数据运算,存储和传送的部件的宽度,它反映了计算机处理信息的一种能力。
2.数据的存储和排列顺序
一般用最低有效位(Least Significant Bit LSB)和最高有效位(Most Significant Bit MSB)来分别表示书的最低位和最高位。
如果以一个字节为排列单位,那么LSB表示最低有效字节(Least Significant Byte),MSB表示的是最高有效字节(Most Significant Byte)。
两种排列方式:大端:将数据的最高有效字节MSB存放在低地址单元中,将最低有效字节LSB存放在高地址单元中,及数据的地址就是MSB所在地址。
小端:将数据的最高有效字节MSB存放在高地址单元中,将最低有效字节LSB存放在低地址单元中,及数据的地址就是LSB所在地址。
三.数据校验码
除原数据信息外,还增加若干位编码,这些新增的代码称为校验位。
由若干位代码组成的一个字叫码字,将两个码字逐位比较,具有不同代码的位的个数叫做这两个码字间的距离,也称为海明距离。
一种码制可能有若干个码字,各码字间的最小距离称为码距。
1.奇偶校验码
奇校验:在最高位添加0或1,使字编码中的“1”的个数为奇数。
偶校验:在最高位添加0或1,使字编码中的“1”的个数为偶数。
2.海明校验码
假设为k个数据位设置r个校验位,则校验位能表示2^r个状态,可用其中的一个状态指出 "没有发生错误",
用其余的2 ^r -1个状态指出有错误发生在某一位,包括k个数据位和r个校验位,因此校验位的位数应满足如下关系:
2^r ≥ k + r + 1 ,即2^r-1 ≥ k + r
3.循环冗余校验码
一种具有较强检错、纠错能力的校验码,常用于外存储器的数据校验,主要用于对大批量数据的存储或传输校验;
可检测出所有奇数位错;可检测出所有双比特的错;可检测出所有小于、等于校验位长度的突发错。
问题:
太多概念,看的感觉很抽象,都不怎么懂,特别是数据校验码。