数据的表示
数制与编码
计算机使用二进制进行编码的原因
- 使用两种状态的物理器件就能表示(如高低电平)
- 二进制与逻辑真和假对应
- 二进制编码和运算规则简单
进位计数制及其相互转换
一个进制数可表示为

其中,b称为基数,b^a是第a位的位权,a0~an可以取0~b的任意数字
结合十进制来看,即b为10,则a0表示个位,a1表示十位···
二进制:逢二进一,b=2
八进制:逢八进一,b=8
十六进制:逢十六进一,每个数可取0~9,A,B,C,D,E,F,b=16
进制间的转化
二进制转八进制 三位二进制数表示一位八进制数
二进制转十六进制 四位二进制数表示一位十六进制数
二进制转十进制 二进制按权展开相加
真值和机器数
真值:带“+”或“-”符号的数,真值是机器数所代表的实际值
机器数:拿一位出来做符号位的数,通常用“0”表示“正”,用“1”表示“负,如0,101(逗号实际不存在,仅为区分符号位与数值位)表示+5。这种把符号数字化的数称为机器数
BCD码
BCD码常用4位二进制数来表示一位十进制数中的0~9十个数码。但四位二进制能表示十六种状态,所以有6种为冗余状态
8421码(最常用)。有权码,则权值从高到低做次为8,4,2,1
余3码。无权吗,是在8421码的基础上加(0011)形成的,因每个数都多余“3”, 因此称为余3码
2421码。有权码。权值由高到低分别为2,4,2,1,特点是大于等于5的4位 二进制数中最高位为1,小于5的最高位为0
字符与字符串
字符编码ASCHI 码
它可表示10个十进制数码、52个英文大写字母和小写字母(A一2,a一z)及一定数量的专用符号(如S、%、+、等),共128个字符。
0~9ASCHI 码为48(011 0000)~57(011 1001),去掉三位最高位,正好是0~9二进制
汉字编码
汉字编码分为输入,内部处理,输出
输入
- 数字编码(区位码)
- 拼音码(拼音输入)
- 字形编码(五笔输入等)
内部处理:汉字内码()
输出:字模码
两种输入码
区位码:用两字节表示个汉字,每字节用七位码,并将汉字和图形符号排列在一个94行94列的二维代码表中。区位码十4位十进制数,面2位是区码后2位是位码。所以称为区位码
国标码: 每个汉字的全国统一的代码,是汉字编码的国家标准,如GB2312,GBK等
关系
国标码=(区位码)16+2020H 避免和ASCHI码前32位控制符冲突
汉字内码=(国标码)16+8080H ASCHI码最高位为0,为了区分改汉字内码最高位为1
校验码
奇偶校验码

奇校验:整个校验码(有效信息位和校验位)中“1“为奇数个
偶校验:整个校验码(有效信息位和校验位)中“1“为偶数个
缺点: 只能检测出奇数个数据位错误,不能纠错 ;奇偶校验每传输一个字节都需要加一位校验位,对传输效率影响很大。
海明校验码
是一种多重奇偶校验码
1.确定校验位数
n+k≤2^K-1
n为数据位,k为校验位数
2.确定校验位分布(P校验位,D数据位)
··· H5 H4 H3 H2 H1
D2 P2 D1 P2 P1
2^2 2^1 2^0
3.分组
被校验数据的海明码=校验位海明码的和
如D1的海明码是H3=H1+H2
D2 H5=H1+H4
···
4.求校验位Pi
Pi=所有(由他校验过的数据位)求异或
假如只有两位数据位D1,D2
P1=D1异或D2
5.校验
s1=P1异或D1异或D2
若s1为0则无错,为1说明H1出错,取反则纠错
CRC冗余校验码

计算原理就是作除法。把数据位看作被除数,设定一个多项式作除数。在数据位末尾加上一段冗余码,使得组合后的新数据流能够整除除数。 这个除法很特殊,是模2除法
例:有八位是数据位数如下,设多项式x^4+x+1,即除数为 10011
先给被除数后补x的最高次方个0

即CRC码为 10101011 1010