1、进位计数法
基数:每个数位所要用到的不同符号的个数(二进制就是2个、8进制就是8个、十进制就是10个…)。
基数越大,位数越小,运算情况越多。
位权:依据进制所决定的一个常数(二级制就是2,十进制就是10…)
一个r进制数的数值可以表示为:
∑i=n−mKiri=Knrn+Kn−1rn−1…+K0r0+K−1r−1+…+K−mr−mi=n∑−mKiri=Knrn+Kn−1rn−1…+K0r0+K−1r−1+…+K−mr−m
- r:基数
- riri:第i位的位权
- KiKi:可以取0~(r-1)中的任意数
- 整数最低位为第0位,小数为负数位
N位r进制的数所能表示的数字个数为:rNrN个
2、进制转换
(一)、任意进制 –> 十进制
用相应位上的数乘以位权即可。
二进制:101.1 –>1∗22+0∗21+1∗20+1∗2−1=5.51∗22+0∗21+1∗20+1∗2−1=5.5
八进制:5.4 –>5∗80+4∗8−1=5.55∗80+4∗8−1=5.5
十六进制:5.8 –>5∗160+8∗16−1=5.55∗160+8∗16−1=5.5
(二)、十进制 –> 任意进制
例:将十进制123.6875转化为二进制
1、除基取余法(整数)
对整数部分的处理使用短除法,并从下向上,得
2、乘基取整法(小数)
小数部分采用乘基取整的思路,如下所示:
0.6875∗21.37500.3750∗20.7500∗21.50000.5000∗21.0000….1最高位011最低位…0.6875∗21.37500.3750∗20.7500∗21.50000.5000∗21.0000….1最高位011最低位…
一般十进制无法精确化为二进制小数,取一定精度即可。
(二)、2n2n进制之间的转换
每n位一组,进行对应的转换即可。
例1:将3C2.68H转化为2进制
0011‾1100‾0010‾.0110‾1000‾3C 2 .11000010.011010003C 2 .68
即:3C2.68H=.01101B
例2:将.01101B转化为八进制
001‾111‾000‾010‾.011‾010‾1702.32001111000010.0110101702.32
即:.01101B=(1702.32)8(1702.32)8
BCD(Binary-Coded Decimal),使用二进制表示的十进制数。即使用四位二进制数表示一位十进制数,使得十进制与二进制之间的转换得以快速进行。
1、8421码
使用8421码进行运算时,若结果大于等于10,需要加6修正(加0110)。
例:
4+9=0100B+1001B=1101B(+0110B)=10011B=134+9=0100B+1001B=1101B(+0110B)=10011B=13
2、余三码
将8421码的每一位加3(即加0011B)得到。
3、2421码
将最高位的权值改为2,特点是大于5的四位二进制码最高位是1,小于5的是0.
1、ASCII码
- 32~126位称为可印刷字符
- A-Z,a-z是连续的,但是Z和a之间不连续
- 以字节的形式存储
例:已知’A’的ASCII码码值是65,H存放在某存储单元M中,求M中存放的值
65+(8-1)=72
72 = 0100 1000
2、字符串
字符串:IF_ _A>B THEN READ© ,每个存储单元存放4B
大端模式:存储单元内先存储高位字节、后存储低位字节的顺序
大端方式是正常的
小端模式:存储单元内先存储低位字节、后存储高位字节的顺序
3、汉字编码
包括输入的输入编码,计算机内部处理的汉字内码和输出的汉字字形码三种。
码距:任意两个合法码字之间不同的二进制的位数。
- 码距大于等于2时,开始具有检错能力
- 码距越大,纠错、检错能力越强
1、奇偶校验码
添加一个校验位,校验位的取值满足以下规定:
奇校验码:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
偶校验码:整个校验码(有效信息位和校验位)中“1”的个数为偶数。
即在有效信息的前面添加1或者0即可。
2、海明校验码
- 若信息位的位数为n,海明码的位数为k ,则有:
2k≥n+k+1(1)2k≥n+k+1(1)
- 将校验位依次放在位于2i−12i−1位上,并将信息位按照顺序填入剩下的位置
- 海明码的取值相当于将各数据位的第i组的所有位求异或
- 每个校验组分别用校验位和参与计算校验位的信息位进行奇偶校验,并得到响应结果。
例:求1010的海明码
1、确定位数
因为 n=4,则由(1)计算得 k=3
则,设信息位D4D3D2D1(1010)D4D3D2D1(1010),共4位,校验位P3P2P1P3P2P1, 共3位,对应的海明码为H7H6H5H4H3H2H1H7H6H5H4H3H2H1。
2、确定校验位的分布
- 将校验码放在2i−12i−1位置上
- 将信息位填入剩下的位置
3、求校验位的值
先将信息位的海明位号表示为二进制,再对相应组含有1的求异或
P1=D1⊕D2⊕D4=0⊕1⊕1=0P2=D1⊕D3⊕D4=0⊕0⊕1=1P3=D2⊕D3⊕D4=1⊕0⊕1=0P1=D1⊕D2⊕D4=0⊕1⊕1=0P2=D1⊕D3⊕D4=0⊕0⊕1=1P3=D2⊕D3⊕D4=1⊕0⊕1=0
因此有
4、纠错
将校验码和与之相应的数据位进行异或,应当全部为0。
P1⊕D1⊕D2⊕D4=0P2⊕D1⊕D3⊕D4=0P3⊕D2⊕D3⊕D4=0P1⊕D1⊕D2⊕D4=0P2⊕D1⊕D3⊕D4=0P3⊕D2⊕D3⊕D4=0
得1则说明有错。
3、循环冗余校验码
循环冗余校验码包括K位数据位和R位校验位。
例:已知生成多项式G(x)=x3+x2+1G(x)=x3+x2+1,信息码为,求对应的CRC码
1、确定K、R及生成多项式对应的二进制码
- K = 7
- R = 生成多项式的最高次幂 = 3
- 则,CRC码的位数 = K + R = 10
- 生成多项式的各次幂的系数就是对应的二进制码:1101(没有x,故第二位为0)
2、移位
将信息码左移R位,低位补0
3、模2相除
将 左移后的信息码 除以 生成多项式的二进制码。
每一次相减时,相同得0,不相同得1,没有借位。
最后的余数就是校验位
因此,CRC码 = 001
4、检错
对于CRC码再次用生成多项式的二进制码进行模2除法,余数应为000。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/197551.html