gf_calu.txt
来自「RS码译码器C语言工程」· 文本 代码 · 共 46 行
TXT
46 行
# include "stdio.h"
#include "math.h"
main()
{int i;
unsigned a1[8], b1[8], c1[8],y1[8];
a1 = {0, 0, 0, 0, 0, 1, 1, 1};
b1 = {0, 0, 0, 1, 0, 0, 1, 0};
c1 = gf_add(a1,b1);
y1 = gf_multi(a1,b1);
for (i = 0;i<=7;i++)
{printf("d%",c1[i]);
if (i==7)
printf("\n");
}
unsigned gf_add(a,b)
unsigned a[8],b[8];
{int i;
unsigned c[8];
for (i=0;i<=7;i++)
{
c[i] = (a[i] + b[i])%2;
}
return c;
}
unsigned gf_multi(a,b)
unsigned a[8],b[8];
{unsigned i;
unsigned c[8];
c[0] = (a[7] & b[7]) ^ (a[6] & b[0]) ^ (a[5] & b[1]) ^ (a[4] & b[2]) ^ (a[3] & b[3] ^ (a[2] & b[4]) ^ (a[2] & b[0]) ^ (a[1] & b[5]) ^ (a[1] & b[1]) ^ (a[1] & b[0]) ^ (a[0] & b[6]) ^ (a[0] & b[2]) ^ (a[0] & b[1]) ^ (a[0] & b[0]) ;
c[1] = (a[7] & b[6]) ^ (a[6] & b[7]) ^ (a[5] & b[0]) ^ (a[4] & b[1]) ^ (a[3] & b[2]) ^ (a[2] & b[3]) ^ (a[1] & b[4]) ^ (a[1] & b[0]) ^ (a[0] & b[5]) ^ (a[0] & b[1]) ^ (a[0] & b[0]);
c[2] = (a[7] & b[5]) ^ (a[6] & b[6]) ^ (a[6] & b[0]) ^ (a[5] & b[7]) ^ (a[5] & b[1]) ^ (a[4] & b[2]) ^ (a[4] & b[0]) ^ (a[3] & b[3]) ^ (a[3] & b[1]) ^ (a[2] & b[4]) ^ (a[2] & b[2]) ^ (a[2] & b[0]) ^ (a[1] & b[5]) ^ (a[1] & b[3]) ^ (a[1] & b[1]) ^ (a[1] & b[0]) ^ (a[0] & b[6]) ^ (a[0] & b[4]) ^ (a[0] & b[2]) ^ (a[0] & b[1]);
c[3] = (a[7] & b[4]) ^ (a[6] & b[5]) ^ (a[6] & b[0]) ^ (a[5] & b[6]) ^ (a[5] & b[1]) ^ (a[4] & b[7]) ^ (a[4] & b[2]) ^ (a[4] & b[1]) ^ (a[3] & b[3]) ^ (a[3] & b[2]) ^ (a[3] & b[0]) ^ (a[2] & b[4]) ^ (a[2] & b[3]) ^ (a[2] & b[1]) ^ (a[2] & b[0]) ^ (a[1] & b[5]) ^ (a[1] & b[4]) ^ (a[1] & b[0]) ^ (a[1] & b[1]) ^ (a[0] & b[6]) ^ (a[0] & b[5]) ^ (a[0] & b[3]) ^ (a[0] & b[2]);
c[4] = (a[7] & b[3]) ^ (a[6] & b[4]) ^ (a[6] & b[0]) ^ (a[5] & b[5]) ^ (a[5] & b[1]) ^ (a[5] & b[0]) ^ (a[4] & b[6]) ^ (a[4] & b[2]) ^ (a[4] & b[1]) ^ (a[3] & b[3]) ^ (a[3] & b[2]) ^ (a[3] & b[1]) ^ (a[2] & b[4]) ^ (a[2] & b[3]) ^ (a[2] & b[2]) ^ (a[1] & b[5]) ^ (a[1] & b[4]) ^ (a[1] & b[3]) ^ (a[0] & b[6]) ^ (a[0] & b[5]) ^ (a[0] & b[4]) ^ (a[0] & b[0]);
c[5] = (a[7] & b[2]) ^ (a[6] & b[3]) ^ (a[5] & b[4]) ^ (a[5] & b[0]) ^ (a[4] & b[5]) ^ (a[4] & b[1]) ^ (a[4] & b[0]) ^ (a[3] & b[6]) ^ (a[3] & b[2]) ^ (a[3] & b[1]) ^ (a[3] & b[0]) ^ (a[2] & b[7]) ^ (a[2] & b[3]) ^ (a[2] & b[2]) ^ (a[2] & b[1]) ^ (a[1] & b[4]) ^ (a[1] & b[3]) ^ (a[1] & b[2]) ^ (a[0] & b[5]) ^ (a[0] & b[4]) ^ (a[0] & b[3]);
c[6] = (a[7] & b[1]) ^ (a[6] & b[2]) ^ (a[5] & b[3]) ^ (a[4] & b[4]) ^ (a[4] & b[0]) ^ (a[3] & b[5]) ^ (a[3] & b[1]) ^ (a[3] & b[0]) ^ (a[2] & b[6]) ^ (a[2] & b[2]) ^ (a[2] & b[1]) ^ (a[2] & b[0]) ^ (a[1] & b[7]) ^ (a[1] & b[3]) ^ (a[1] & b[2]) ^ (a[1] & b[1]) ^ (a[0] & b[4]) ^ (a[0] & b[3]) ^ (a[0] & b[2]);
c[7] = (a[7] & b[0]) ^ (a[6] & b[1]) ^ (a[5] & b[2]) ^ (a[4] & b[3]) ^ (a[3] & b[4]) ^ (a[3] & b[0]) ^ (a[2] & b[5]) ^ (a[2] & b[1]) ^ (a[2] & b[0]) ^ (a[1] & b[6]) ^ (a[1] & b[2]) ^ (a[1] & b[1]) ^ (a[1] & b[0]) ^ (a[0] & b[7]) ^ (a[0] & b[3]) ^ (a[0] & b[2]) ^ (a[0] & b[1]);
return c;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?