我需要构造 0x444 的 (31,26) 汉明码。
在阅读了维基百科和 GeeksForGeeks 中显示的算法后,我仍然无法理解这是如何工作的,因为我的构造最终与我在互联网上找到的计算器的结果不同。
我的结果是:0100 0100 0010 0010 或 0x4422 是否正确?
据我了解:P1 = 按位 XOR(C1,C3,C5,C7,C9,C11,C13.C15,C17..) = 0
P2 = 按位异或(C2,C3,C6,C7,C10,C11,C14,C15..) = 1
P3 = 按位异或(C4,C5,C6,C7,C12,C13,C14,C15..) = 0
P4 = 按位异或(C8,C9,C10,C11,C12,C13,C14,C15..) = 0
P5 = 按位 XOR(C16,C17..) = 0
我无法理解的另一件事..如果(31,26)汉明码应该输出具有5个奇偶校验位和26个数据位的31位结果..为什么(7,4)汉明码将每个4位转换为7位表示,而不仅仅是 7 位和 3 个奇偶校验位的 1 个表示?
谢谢。