decoder_hamming.c

来自「汉明码是线性分组码中重要的一种编码」· C语言 代码 · 共 34 行

C
34
字号
void Decoder_Hamming(int in[7], int out[4])
//(7, 4) 汉明码译码器
{
	int j, S;
	int s[3];

	s[0] = in[0] ^ in[1] ^ in[2] ^ in[4];
	s[1] = in[0] ^ in[1] ^ in[3] ^ in[5];
	s[2] = in[0] ^ in[2] ^ in[3] ^ in[6];
	S = s[0] * 4 + s[1] * 2 + s[2];

	for (j = 0; j <= 3; j++)
	out[j] = in[j];

	switch(S){
	case 0 :
	case 1 :
	case 2 :
	case 4 :
		break;
	case 3 :
		out[3] = out[3] ^ 1;
		break;
	case 5 :
		out[2] = out[2] ^ 1;
		break;
	case 6 :
		out[1] = out[1] ^ 1;
		break;
	case 7 :
		out[0] = out[0] ^ 1;
		break;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?