软考学习笔记1-计算机数字的码制(原码,反码,补码,移码,奇偶校验码,海明码以及循环冗余码)表示

机器数有:0表示正号,1表示负号

1. 原码

以八位二进制为例,第一位是符号位;
则原码的取值范围是【1111 1111,0111 1111】,也就是【-127,+127】
Eg:A=+10 0101,他的原码为0010 0101
B=-10 0101,他的原码为1010 0101

2. 反码

 正数的反码是他本身;
 负数的反码:符号位不变,各个位取反
Eg:+1=【0000 0001】原=【0000 0001】反
-1=【1000 0001】原=【1111 1110】反

3. 补码

 正数的补码是他的本身
 负数的补码:符号位不变,各个位取反,最后加1
 一个数的补码的补码是原码,即未改变
Eg:+1=【0000 0001】原=【0000 0001】反=【0000 0001】补
-1=【1000 0001】原=【1111 1110】反=【1111 1111】补

4. 移码

无论正负数的移码都是对符号位进行取反

5. 奇偶校验码

奇校验:被传输的有效数据中“1”的个数是奇数个,校验位 填“0”,否则填“1”;
偶校验:被传输的有效数据中“1”的个数是偶数个,校验位 填“0”,否则填“1”。

6. 码距:任意两个合法的编码之间的不同的二进制位 的数目叫这两个码字的码距。

Eg.1101和1001之间只有第二个位置的二进制数字得到翻转,因此码距为1;
1101和0111之间有两个位置的二进制数得到翻转,因此码距为2.

7. 海明码:是一种校验码,可以发现“ ≤码距-1” 位的错误;可以纠正“<码距/2”位的错误。

(1)原理:在一组数据中加入几个校验码,使得码距加大(提高翻转检验码),当某一位出错,会 引起几个校验位的值发生变化。

(2)海明不等式:校验码个数为k,可以表示2 k个信息,1个信息用来表示“没有错误”,
其余2^(k -1) 个表示数据中存在错误;
满足2^(k -1)≥m+k( m+k为编码后的数编总长度),则在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现了问题。
(3)编码规则:校验位依次放在第2 i (i=0,1,2,3…)位,其余位置为信息位。
(4)生成步骤:4个信息位k0,k1,k2,k3;3个校验位r0,r1,r2。
在这里插入图片描述
第 i 个信息位的位数为参与校验它的校验位的位数之和。
如上例 7=4+2+1;6=4+2;5=4+1;3=2+1。
即k3要参与r2,r1和r0的生成,k2参与r2和r1的生成 ,k1参与r2,r0的生成,k0参与r1和r0的生成。
则产生式子(+代表亦或:两个值相同为0,两个值不相同为1)
在这里插入图片描述
(从下往上看)假如右边结果为000则无错误,
假如第三个结果为1,则为100可知第四位出错;
(5)案例演示:求信息1011的海明码
1) 判断需要几个校验码:
根据海明不等式2 k -1≥m+k(这里m为信息1011有4位,则取4)
可以得到k取3则可满足海明不等式,因此需要3位校验码,根据海明码的编码规则可得到
在这里插入图片描述
2) 根据编码规则求校验码的值
在这里插入图片描述
R0= k3+k1+k0= 1+1+1=0+1 =1
R1= k3+k2+k0= 1+0+1=1+1 =0
R2= k3+k2+k0= 0+1+1=1+1 =0 因此信息1011的海明码为1010101

8. 循环冗余校验码

(1) 二进制多项式表示:
如:1011表示为多项式 X3+(0*X2)+X1+X0
(2) 编码组成:K位信息码,加上R位的校验码。
(3) 校验码的生成校验码的生成步骤如下:
1)将K位数据C(x)左移R位,给校验位留下空间,得到移位后的多项式为C(x) × XR 。
2)将这移位后的信息多项式除以生成多项式,得到R位的余数多项式。
3)将余数作为校验码嵌入信息位左移后的空间。
(4)案例演示:信息位为1010 0110,生成多项式为 a(x)= X5+X4+X+1,则:
1)去多项式最高次项作为左移位数,即左移5位
得到1010 0110 0000 0
2)左移后的二进制数异或多项式二进制数
在这里插入图片描述
因此该信息的循环冗余校验码为:1010 0110 1100 0

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值