crc16计算
2015-07-13 20:11
246 查看
unsigned short sp_crc16_with_init(unsigned short crc, const unsigned char *buf, int size)
{
unsigned char i;
while(size--!=0)
{
for(i=0x80; i!=0; i/=2)
{
if((crc&0x8000)!=0)
{
crc*=2;
crc^=0x1021;
} /* 余式CRC乘以2再求CRC */
else
{
crc*=2;
}
if((*buf&i)!=0)
{
crc^=0x1021; /* 再加上本位的CRC */
}
}
buf++;
}
return(crc);
}
unsigned short sp_crc16(const unsigned char *buf, int size)
{
return(sp_crc16_with_init(0x00,buf,size));
}
{
unsigned char i;
while(size--!=0)
{
for(i=0x80; i!=0; i/=2)
{
if((crc&0x8000)!=0)
{
crc*=2;
crc^=0x1021;
} /* 余式CRC乘以2再求CRC */
else
{
crc*=2;
}
if((*buf&i)!=0)
{
crc^=0x1021; /* 再加上本位的CRC */
}
}
buf++;
}
return(crc);
}
unsigned short sp_crc16(const unsigned char *buf, int size)
{
return(sp_crc16_with_init(0x00,buf,size));
}
相关文章推荐
- php数组去重复 巧妙利用foreach 循环
- LeetCode——Longest Substring Without Repeating Characters
- 3522: [Poi2014]Hotel( 树形dp )
- linux kernel 网络协议栈之xps特性详解
- Window系统装机步骤
- Fork 一个仓库并同步
- Java连接MQ的实例
- js获取项目的各个路径
- 内存泄漏检测
- Python 序列的方法
- C语言基础之--------内存地址分配
- 可以使电脑更加顺手的软件以及设置(个人习惯)
- nyoj118 修路方案(求次小生成树)
- Xshell实现Windows上传文件到Linux主机
- wince 自动启动程序设置
- C语言基础———指针,结构体指针,函数指针
- 提交修改
- TinyXML开源XML解析器-TinyXML-2
- POJ 3168 Barn Expansion (几何+排序)
- springmvc拦截器使用