校验和

来源:互联网 发布:淘宝贷款利息如何计算 编辑:程序博客网 时间:2024/04/28 06:47
  1. #include <stdio.h>
  2. int main(int argc,char * argv[])
  3. {
  4. unsigned int ch1,ch2,temp;
  5. unsigned int sum=0;
  6. FILE *fp;
  7. if (argc!=2)
  8. {
  9.     printf("check command!/n");
  10.     return 0;
  11. }
  12. fp=fopen(*++argv,"r");
  13. if(!fp)
  14. {
  15.     printf("cannot open this file/n");
  16.     return 0;
  17. }
  18. ch1=fgetc(fp);
  19. while(ch1!=EOF)
  20. {
  21.     ch1=ch1<<8;
  22.     ch2=fgetc(fp);
  23.     if (ch2!=EOF)
  24.     {
  25.         temp=ch1|ch2;
  26.         sum+=temp;
  27.     }
  28.     else
  29.     {
  30.         sum+=ch1;
  31.         break;
  32.     }
  33.     ch1=fgetc(fp);
  34. }
  35. ch1=sum >> 16;
  36. ch2=sum & 0x00ffff;
  37. sum=ch1+ch2;
  38. printf("%x/n",sum);
  39. return 1;
  40. }