Fletcher16校验算法

来源:互联网 发布:淘宝怎样更改实名认证 编辑:程序博客网 时间:2024/06/10 02:22
/*********************************************************************** Function: Fletcher16* Description: Calculate Fletcher16** Return:***********************************************************************/Uint16 Fletcher16(Uint16 *data,Uint16 count){Uint16 sum1 = 0xFF;Uint16 sum2 = 0xFF;Uint16 tlen;while(count){tlen = count >=20? 20:count;count-=tlen;do{sum2+=sum1+=*data++;}while(--tlen);sum1 = (sum1 & 0xFF) + (sum1 >> 8);sum2 = (sum2 & 0xFF) + (sum2 >> 8);}//Second reduction step to reduce sums to 8 bitssum1 = (sum1 & 0xFF) + (sum1 >> 8);sum2 = (sum2 & 0xFF) + (sum2 >> 8);return sum2 << 8 | sum1;}

0 0