学习海明码纠错计算
发布:admin | 发布时间: 2011年4月13日小王在做一些软考网工自测题时,经常遇到海明码纠错的计算题,书上的解答太麻烦了,公式太多,找了个比较典型和解答简单的,备忘。
使用海明码进行纠错,7 位码长(X7X6X5X4X3X2X1),其中4 位数据,监督关系式为:
C0= X1+ X3+ X5+ X7
C1= X2+ X3+ X6+ X7
C2= X4+ X5+ X6+ X7
如果接收的码字为1000101,那么纠正后的码字是(58) 。
(58) A.1000001 B.1000101
C.1001101 D.1010101
试题解析:
C0= X1+ X3+ X5+ X7=1+1+0+1=1 (+是异或)
C1= X2+ X3+ X6+ X7=0+1+0+1=0
C2= X4+ X5+ X6+ X7=0+0+0+1=1
C0 和C2 的计算结果不为0,表示错误的码位在C0 和C2 中出现,但在C1 中不会出现。
因此,出错的是X5,将其由0 改为1 即可。
异或(xor)是一个数学运算符。它应用于逻辑运算。异或符号为“^”。 其运算法则为a异或b=a'b或ab'(a'为非a)。
真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。简单点说就是异或的两个值'相同为假,不同为真'。
编辑本段异或运算法则
1. a ^ b = b ^ a
2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.
4. a ^ b ^ a = b.
x是二进制数0101
y是二进制数1011
则结果为x^y=1110
0^0=0
0^1=1
1^0=1
1^1=0
只有在两个比较的位不同时其结果是1,否则结果为0,即“相同为0,不同为1”!
文章如转载,请注明转载自:http://www.5iadmin.com/post/826.html
- 相关文章:
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。