| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 547 人关注过本帖
标题:请教一个关于CRC16的问题
取消只看楼主 加入收藏
wxhpy
Rank: 1
来 自:南昌
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-9-17
结帖率:100%
收藏
 问题点数:0 回复次数:0 
请教一个关于CRC16的问题
初学crc16_ccitt,看了一些文章,觉得用查表法的效率高,整合了一些程序,想对信息 101进行CRC16,如下所示:

#include <stdio.h>
void get_table(unsigned short *);
unsigned short do_crc(unsigned char *message, unsigned int len,unsigned short *crc16_ccitt_table);
void main()
{
    unsigned short crc16_ccitt_table[256];
    unsigned char message[]={'1','0','1'};
    int i;
    unsigned short crc_reg;
    get_table(crc16_ccitt_table);//获得相应的256个字符表格

        //printf("0x%x\n",crc16_ccitt_table[i]);
 crc_reg=do_crc(message,3,crc16_ccitt_table);
    printf("%d",crc_reg);


}//get_table(crc16_ccitt_table)这个函数是用来获得查找表数组的,已经验证没有问题,而其存放在crc16_ccitt_table[256]这个数组中

void get_table(unsigned short *crc16_table)
{    unsigned char index = 0;
    unsigned short to_xor;
    int i;

    while (1)
    {
        to_xor = index;      
        for (i = 0; i < 8; i++)
        {
            if (to_xor & 0x0001)
                to_xor = (to_xor >> 1) ^ 0x8408;
            else
                to_xor >>= 1;           
        }            
        crc16_table[index]=to_xor;
        
        if (index == 255)
        {
            
            break;
        }
        else
        {
         
            index++;
        }
    }
   
   
}

unsigned short do_crc(unsigned char *message, unsigned int len,unsigned short *crc16_ccitt_table)
{
    unsigned short crc_reg = 0;
         
    while (len--)
        crc_reg = (crc_reg >> 8) ^crc16_ccitt_table[(crc_reg ^ *message++) & 0xff];
        
    return crc_reg;
}   //这个是利用查表产生CRC的函数

我的疑问有两点:
(1)我的信息是  101 ,如何把它与参数中的 unsigned char *message,int len联系起来?
(2)我在用计算法得到101的crc16_ccitt的码为 0x50a5,请问与用查表法得出的结果会一样吗?
搜索更多相关主题的帖子: message include 文章 信息 
2009-11-01 16:50
快速回复:请教一个关于CRC16的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019485 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved