一.进位计数法
基数:每个数位所用到的不同符号的个数。
基数大小优缺点:存储相同数据,基数大的存储所占存储单元更小;基数越小的,实现运算规则越简便,如十进制的乘法有100种情况,而二进制只有4种情况。
计算机选择二进制的原因,是方便对应到物理器件的状态,如高电平、低电平
二.进制转换
一.任意进制转十进制
二.十进制转任意进制
如果乘不尽,一般会要求取多少位
三.2^n进制之间的转换
三.真值和机器数
四.BCD码
1.8421码
2.其他码
五.字符与字符串
1.ASCII码
数字+字母+符号共128个字符 ——> 7位二进制编码 ——>ASCII码
2.字符串
3.汉字表示
六.校验码
一 .问题
在使用比较强的链路传递信息中,信道有各种各样不理想因素,导致传递的信号发生跳变。为了解决跳变后,接收方无法判断错误,就需要校验。
二.校验原理
码距:两个合法码字对应位上数字的不同位的个数
情景:A(00)在通信中跳码为01
方案一,由于01在方案一可以识别为B,所以无法判断错误;
方案二,由于01在方案二中无法识别,所以可以判断错误。
结论:当码距大于1后就可以检测错误,但无法发现错误原因。
三.奇偶校验
奇校验:保证一段数据中出现奇数个1,在有效信息码前补
如果跳变后,出现偶数个1的话,那就可以判断出错。
但如果跳变的是两个数,跳变后出现3个1,也是奇数,那就会校验出错。
偶校验:保证一段数据中出现偶数个1,在有效信息码前补
七.海明校验码
海明码设计思路:分组校验一>多个校验位一>校验位标注出错位置
例子:
4.纠错
校验方程:
S1=P1
⨁
\bigoplus
⨁D1
⨁
\bigoplus
⨁D2
⨁
\bigoplus
⨁D4
S2=P2
⨁
\bigoplus
⨁D1
⨁
\bigoplus
⨁D3
⨁
\bigoplus
⨁D4
S3=P3
⨁
\bigoplus
⨁D2
⨁
\bigoplus
⨁D3
⨁
\bigoplus
⨁D4
接收到:1010010
S1=0
⨁
\bigoplus
⨁ 0
⨁
\bigoplus
⨁ 1
⨁
\bigoplus
⨁ 1 = 0
S2=1
⨁
\bigoplus
⨁ 0
⨁
\bigoplus
⨁ 0
⨁
\bigoplus
⨁ 1 = 0
S3=0
⨁
\bigoplus
⨁ 1
⨁
\bigoplus
⨁ 0
⨁
\bigoplus
⨁ 1 = 0
接收到错误码:10100 00
S1=0
⨁
\bigoplus
⨁ 0
⨁
\bigoplus
⨁ 1
⨁
\bigoplus
⨁ 1 = 0
S2=0
⨁
\bigoplus
⨁ 0
⨁
\bigoplus
⨁ 0
⨁
\bigoplus
⨁ 1 = 1
S3=0
⨁
\bigoplus
⨁ 1
⨁
\bigoplus
⨁ 0
⨁
\bigoplus
⨁ 1 = 0
八.循环冗余校验码
例,设生成多项式为G(x)=X^3 + X^2+1,信息码为101001,求对应的CRC码。
1.确定K、R以及生成多项式对应的二进制码
K=信息码的长度=6,R=生成多项式最高次幂=3 → 校验码位数N=K+R=9
生成多项式G(x)= 1·X^3 + 1·X^2 + 0·X^1 + 1·X^0,对应二进制码1101
2.移位
信息码左移R位,低位补0,则101001000
3.相除
对移位后的信息码,用生成多项式进行模2除法,产生余数
4.检错和纠错
余数为010,转化为十进制是2,第二位出错
九.大小端模式
大端方式:将最高有效位放在高内存处,将最低有效位放在低内存处,符合人类的阅读习惯。
小段方式:将最高有效位放在内存低处,将最低有效位放在内存高出。如果一个只能处理8位数据的CPU,要对两个int型变量做加法,那么会先将最低有效字节先进行加法。而CPU会先取出内存高位的数据,而小端方式的最低有效位刚好就在内存高处,就满足先算先取出的条件。
十.边界对齐
1.边界对齐方式
用空间换时间
2.边界不对齐方式
时间换空间