我正在尝试打印 Hamming (7,4) code在 C 语言中表示所有可能的 4 位消息。我已经构建了 for 循环来在四个变量的所有可能值之间循环,但我不确定如何继续。我试图在 C 中使用 XOR 运算符来检查奇/偶奇偶校验,但我无法在程序中表达编码。到目前为止我有以下 C 程序:
#include <stdio.h>
int main() {
int a,b,c,d;
int result;
int p1,p2,p3;
printf(" A B C D| OUT \n");
printf("------------|-----\n");
/* cycle through all input bit combinations */
for ( a = 0; a <= 1; a = a + 1 )
{
for ( b = 0; b <= 1; b = b + 1 ) {
for ( c = 0; c <= 1; c = c + 1 ) {
for ( d = 0; d <= 1; d = d + 1 ) {
//unsure of how to compute p1, p2, p3 to print the Hamming (7,4) code
}
}
}
}
return 0;
}
如果您能提供任何帮助,我将不胜感激!
最佳答案
p1 涵盖 d1、d2、d4(代码中的 a、b 和 d)
p2 覆盖 d1、d3、d4
p3 覆盖 d2、d3、d4。
如果数据位为d1、d2、d3、d4,则汉明码为
+--+--+--+--+--+--+--+--+
| 0|p1|p2|d1|p3|d2|d3|d4|
+--+--+--+--+--+--+--+--+
(如果以二进制输出,则不需要前导零)
您可以阅读this tutorial了解如何将多个位组合成一个字节(如果需要)。
编码的一个提示:
p1 = a ^ b ^ d;
关于c - 为所有可能的 4 位消息打印 Hamming (7,4) 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096520/