- 230 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 08:02:07 .net]
- ついでに CRC16
#include <stdio.h> int main(int c,char *v[]){unsigned short C,t[256];int i,j;FILE *F; if(!(F=fopen(v[1],"r"))){fprintf(stderr,"Can't Open:%s\n",v[1]);return 1;} for(i=0;i<256;t[i++]=C)for(C=i,j=9;--j;)C=C/2^(C&1?0xa001:0); for(C=0;(i=getc(F))>=0;C=t[C&255^i]^C>>8); fclose(F);printf("%04x %s\n",C,v[1]);return 0;} CRC16の場合、テーブル無しに直接計算するコードもあったりするのだが ttp://retroarchive.org/cpm/cdrom/CPM/GENASM/CRC16.ASM ttp://retroarchive.org/cpm/cdrom/CPM/GENASM/CRC120.ASM こういうのをCにしてみるのも面白いかと思った。
|

|