⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc32tab.c

📁 Error checking CRC and CRC TABLE GENERATORS in C Language
💻 C
字号:
#include <stdio.h>
#include <string.h>

#define POLINOMIO 0x04C11DB7

/*
unsigned long crc32(unsigned char buf[])
{
	unsigned char topo;
	unsigned long crc=0, k, tam=strlen(buf);

	for(k=0;k<(tam+4);k++)
	{
		//printf("%X\n", crc);
		topo=(unsigned char)(crc>>24);
		if(k<tam) crc=(crc<<8)|buf[k];
		else crc=crc<<8;
		crc^=tab_crc16[topo];
	}

	return crc;
} */

int main()
{   /*
	unsigned int c;
	unsigned char k, buf[80];

	printf("DIGITE OS DADOS PARA O CALCULO DO CRC\n");
	scanf("%s", buf);

	printf("\n%X\n", crc32(buf));

	return 0;*/
	FILE *fp;
	unsigned int c;
	unsigned long crc=0;
	unsigned char k;

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

	fprintf(fp, "unsigned long crc32[256] = {");
	for(c=0;c<256;c++)
	{
		crc=(unsigned long int)(c)<<24;

		for(k=0;k<8;k++)
		{
			if(crc&(1l<<31))
			{
				crc=crc<<1;
				crc^=POLINOMIO;
			}
			else crc=crc<<1;
		}
		printf("\n ",crc);
		if(!(c%8)) fprintf(fp, "\n");
		if(c!=255) fprintf(fp, "0x%.8lX, ", crc);
		else fprintf(fp, "0x%.8lX };", crc);
	}
	fclose(fp);

	return 0;
}

⌨️ 快捷键说明

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