CRC 16

CRC16 -MODUSB //CRC16-2

unsigned int _CRC16MODUSB(unsigned char *ptr, unsigned char len)
 {

unsigned int  crc_reg = 0xffff;
unsigned int  poly = 0xa001;
for (uint i = 0; i < len; i++)
{
unsigned int  data = *(ptr++) & 0xff;
crc_reg ^= data;
for (uint j = 0; j < 8; j++)
{
crc_reg = (((uchar)crc_reg) & 1) ? ((crc_reg >> 1) ^ poly) : (crc_reg >> 1);
}
}
return crc_reg;
}

CRC16-IBM //CRC16-1

 unsigned int _CRC16IBM(unsigned char *ptr, unsigned char len)
 {


unsigned int crc = 0;
for (uint j = 0; j < len; j++)
{
uchar b = *ptr++;
for (uchar i = 0; i < 8; i++)
{
crc = ((b ^ (uchar)crc) & 1) ? ((crc >> 1) ^ 0xA001) : (crc >> 1);
b >>= 1;
}
}
return crc;
}

// from http://forums.codeguru.com/showthread.php?433491-Crc-16-ibm

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值