校验和算法

时间:2015-05-21 05:58:12
【文件属性】:
文件名称:校验和算法
文件大小:504KB
文件格式:ZIP
更新时间:2015-05-21 05:58:12
校验和算法 #include #include #include #include #define MAX_BUFF 256 void main(int argc,char* argv[]) { FILE* stream; char buff[MAX_BUFF]; //缓冲区数组 最大256个字符 long sum=0; //累加器 char nstring[5]; //待转换成数字进行累加的字符串 (4个) int number=0; //待加数 unsigned short checksum; //校验和 int count; // for(int count=0;countcount) //如果数据为奇数个,则补一个00 { nstring[0]=buff[count-2]; nstring[1]=buff[count-1]; nstring[2]='0'; nstring[3]='0'; nstring[4]='\0'; sscanf(nstring,"%x",&number;); sum+=number; } } while(sum>>16) //高位累加 sum = (sum & 0xffff) + (sum >> 16); checksum=~(unsigned short)sum; //累加和取反得校验和 printf("%x\n",checksum); } fclose(stream); }
【文件预览】:
校验和算法
----framer.doc(31KB)
----framer.plg(1KB)
----framer.cpp(2KB)
----input1(20B)
----infile2.txt(404B)
----framer.exe(160KB)
----framer.opt(53KB)
----input2(556B)
----infile1.txt(59B)
----framer.ncb(33KB)
----check_sum.exe(168KB)
----check_sum.doc(21KB)
----check_sum.cpp(2KB)
----check_sum.plg(1KB)
----output2(579B)
----Debug()
--------vc60.pdb(60KB)
--------framer.exe(180KB)
--------check_sum.pdb(377KB)
--------vc60.idb(49KB)
--------check_sum.exe(184KB)
--------framer.pdb(369KB)
--------framer.pch(219KB)
--------framer.ilk(184KB)
--------check_sum.obj(4KB)
--------check_sum.ilk(187KB)
--------check_sum.pch(272KB)
--------framer.obj(5KB)
----framer.dsp(3KB)
----check_sum.dsw(541B)
----check_sum.ncb(41KB)
----check_sum.opt(53KB)
----output1(69B)
----check_sum.dsp(3KB)
----framer.dsw(535B)

网友评论