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

📄 check_sum.cpp

📁 用VC实现计算CRC校验和功能的程序
💻 CPP
字号:
#include<stdlib.h>
#include<stdio.h>
void main(int argc, char* argv[])
{
	//定义初始化变量
	unsigned char ch;//保存读入的数据
	int count=0;//读入的数据的数目
	unsigned long int checksum,sum=0;//checksum用来保存校验和
	FILE *fp;

	//打开文件argv[1]
	if((fp=fopen(argv[1],"r"))==NULL)//如果打开文件出错,则报错退出
	{
		printf("can not open this file\n");
		exit(1);
	}

	//从打开的文件中读取字符,并进行数据处理
	while(1)//判断是否读到了文件尾
	{
		ch=fgetc(fp);
		if(ch==0xff)
			break;

		//以下为数据处理过程,将奇数字节累加到sum的高8位,偶数字节累加到sum的低8位。
		//在累加到高8位时乘以它的权值256。
		if(count%2==0)
		{
			sum=sum+int(ch)*256;
		}
		else
		{	
			sum=sum+int(ch);
		}
		printf("%x--%lx    ",ch,sum);
		if(count%2==1)
			printf("\n");
		count++;
	}
	
	checksum=sum+(sum>>16);//将sum的高16位加到低16位上赋给checksum.
	checksum=~checksum;//取反
	checksum=(checksum)&(0xffff);//清空checksum的高16位
	printf("\nsum:%lx,checksum:%lx\n",sum,checksum);
	printf("argv=%s\n",argv[1]);
	fclose(fp);	//关闭文件
}

⌨️ 快捷键说明

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