#include <stdio.h>
/****************************
* Message:信息源
* Poly :码多项式
* Poly_long:多项式长度
* 返回值:CRC循环校验码
*****************************/
unsigned char CRC(unsigned char Message,unsigned char Poly,unsigned char Poly_long)
{
unsigned char Check=Message;
int i;
int MoveSign=0x80;
while(1)
{
if(Poly&0x80)
{
break;
}
Poly=Poly<<1;
}
for(i=8;i>=Poly_long;i--)
{
if(Check&MoveSign)
{
Check=Check^Poly;
}
Poly =Poly>>1;
MoveSign=MoveSign>>1;
}
return Check;
}
int main()
{
printf("%x",CRC(0xEC,0xD,4));
return 0;
}
上完课自己写的,请大牛评价一下
感觉和网上的过程不大一样(自己也看不懂网上的),可能理论没弄好,所以求更优算法
给50分
/****************************
* Message:信息源
* Poly :码多项式
* Poly_long:多项式长度
* 返回值:CRC循环校验码
*****************************/
unsigned char CRC(unsigned char Message,unsigned char Poly,unsigned char Poly_long)
{
unsigned char Check=Message;
int i;
int MoveSign=0x80;
while(1)
{
if(Poly&0x80)
{
break;
}
Poly=Poly<<1;
}
for(i=8;i>=Poly_long;i--)
{
if(Check&MoveSign)
{
Check=Check^Poly;
}
Poly =Poly>>1;
MoveSign=MoveSign>>1;
}
return Check;
}
int main()
{
printf("%x",CRC(0xEC,0xD,4));
return 0;
}
上完课自己写的,请大牛评价一下
感觉和网上的过程不大一样(自己也看不懂网上的),可能理论没弄好,所以求更优算法
给50分
解决方案 »
- 基于P2P技术的个人网站服务项目
- 请问如何把屏幕截取为256色的位图
- 一个dll的几个实例需要共享数据,用什么技术实现比较好?
- 北京这一段的天气好(天气好,心情好)散分,马上揭帖~
- 感觉那个写什么“中国软件已经输了”的sunhui就是一个在大家面前炫耀的SB
- 请教一个VC+ACCESS问题,在线等,急!!!!!!
- 现在分好多,居然还有626分,五个三角星,是该散分的时候了。
- 如果dll中返回Cstring型的值,在vb中如何声明,对应什么类型!
- 我要让我的组件画出三维图形,但不知如何下手,各位高手,能给个建议吗?
- 学com!
- OnEraseBkgnd与 on size()?
- 怎样改变菜单栏的位置
更新
结束看看大牛的hash算法实现,包括crc都是这样,主要是方便处理大文件
随便下个md5或sha1算法,hash算法难度很低的,应该能看懂