- 论坛徽章:
- 0
|
这样产生一个CRC16 table是正确的吗?
- #include "stdio.h"
- unsigned int crc(int data,int genpoly,int accum)
- {
- int i=0;
- data<<=8;
- for(i=8;i>0;i--)
- {
- if((data^accum)&0x800)
- accum=(accum<<1)^genpoly;
- else accum<<=1;
- data<<=1;
- }
- return accum;
- }
- int main(void)
- {
- char j;
- int i;
- unsigned int crc16_tab[256];
- for(i=0;i<=255;i++)
- {
- crc16_tab[i]=crc(i,0xa001,0);
- }
- for(i=0;i<256;i++)
- {
- crc16_tab[i]=crc(i,255,0);
- }
-
- /* for(i=0;i<256;i++)
- {
- if(i==1 || i==2 || i==3)
- {
- printf("pause...");
- scanf("%c",&j);
- }
- printf("%x ",crc16_tab[i]);
- if(i%8==0)
- printf("\n");
- }*/
- return 0;
- }
复制代码 |
|