crc16tab.c

来自「Error checking CRC and CRC TABLE GENERAT」· C语言 代码 · 共 38 行

C
38
字号
#include <stdio.h>

#define POLINOMIO 0x1021

int main()
{
	FILE *fp;
	unsigned int c, crc=0;
	unsigned char k;

	if((fp=fopen("crc16.h", "wr"))==NULL)
	{
		printf("ERRO AO ABRIR O ARQUIVO");
		return 1;
	}

	fprintf(fp, "unsigned int tab_crc16[256] = {");
	for(c=0;c<256;c++)
	{
		crc=(unsigned int)c<<8;
		for(k=0;k<8;k++)
		{
			if(crc&(1<<15))
			{
				crc=crc<<1;
				crc^=POLINOMIO;
			}
			else crc=crc<<1;
		}
		if(!(c%8)) fprintf(fp, "\n");
		if(c!=255) fprintf(fp, "0x%.4X, ", crc);
		else fprintf(fp, "0x%.4X };", crc);
	}
	fclose(fp);

	return 0;
}

⌨️ 快捷键说明

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