我很难回答这个问题。这是最初的问题:
一个字用校验位
0111
(c8、c4、c2和c1)编码。该字作为11101011
(数据)被读回。原始数据字是什么?
我认为既然有4个校验位,那么这一定是一个4位的存储字,其中只有16个可能的字:0000, 1000, 0100, 1100, 0010, 1010, 0110, 1110, 0001, 1001, 0101, 1101, 0011, 1011, 0111, 1111
。因此,每个码字具有8个比特,并且校验比特位于位置1、2、4和8。
- 位1检查位上的奇偶校验:1、3、5、7、9、11
- 位2检查位上的奇偶校验:2、3、6、7、10、11
- 位4检查位4、5、6、7、12上的奇偶校验
- 位8检查位的奇偶性:8、9、10、11、12
我还知道,如果1的检查总数为奇数,则将奇偶校验位设置为1,如果所有1的检查都为偶数,则将校验位设置成0。
我认为读回的单词中一定有错误,我必须更正它,这样才能找到原始数据单词。
这就是这个问题中发生的事情吗?
消息:11000010
方法A:
CBA987654321 <-- Hexadecimal
1100?001?0??
C=1100
B=1011
5=0101
______
X=0010
垂直测试每一位(XOR)。
解决方案:
1100?001?0??
0 0 10
110000010010
方法B:
CBA987654321 <-- Hexadecimal
1100?001?0??