重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Crc校验函数c语言 crc校验码c语言

C语言中CRC循环校验的一个程序

while(len--!=0)

在奉贤等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、做网站 网站设计制作按需策划设计,公司网站建设,企业网站建设,品牌网站制作,全网营销推广,外贸网站制作,奉贤网站建设费用合理。

这句的len的值循环一次就减少1,先执行len!=0,再执行腔衫len--。

当len为0时退出循环前圆锋。

for(i=0x80;

i!=0;

i/=2)

0x80是十慧晌六进制数,也即128

当i!=0时,执行循环体,

然后i=i/2,即i值减半。

求教C语言编写的CRC16的校验程序

unsigned short crc_dsp(unsigned short reg, unsigned char data_crc)

//reg为crc寄迅岩存器, data_crc为将要处理的猜键8bit数据流

{

unsigned short msb; //crc寄存器将移出的最高1bit

unsigned short data;

unsigned short gx = 0x8005, i = 0; //i为左移亩兆御次数, gx为生成多项式

data = (unsigned short)data_crc;

data = data 8;

reg = reg ^ data;

do

{

msb = reg 0x8000;

reg = reg 1;

if(msb == 0x8000)

{

reg = reg ^ gx;

}

i++;

}

while(i 8);

return (reg);

}

C语言实现CRC校验

把我知道的说一下:

码流后面加8个0可以用移位得到(码流8;)

单次异桐消或运算可以用运算符:^(运算符两边为常数)

由于你校验的是5个字节,且要多次异或运算,所以得借助数组,或其它的数据结果才能完成局返。

最后问一下你是做硬局腊知件的吗

crc16校验的c语言程序

下面我们以CRC-16为例来说明任意长度数据流的CRC校验码生成过程。我们采用将数据流分成若干个8bit字符,并由低字节到高字绝塌节传送的并行方法来求CRC校验码。具体计算过程为:用一个16bit的寄存器来存放CRC校验值,且设定其初值为0x0000;将数据流的第一个8bit与16bit的CRC寄存器的高字节相异或,并将结果存入CRC寄存器高字节;CRC寄存器左移一位,最低1bit补零,同时检查移出的最高1bit,若移出的最高1bit为0,则继续按上述过程左移,若最高1bit为1,则将CRC寄存器中的值与生成多项式码相异或,结果存入CRC寄存器值;继续左移并重复上述处理方法,直到将8bit数据处理完为止,则此时CRC寄存器中的值就是第一个8bit数据对应的CRC校验码;然后将此时CRC寄存器的值作为初值,用同样的处理方法重复上述步骤来处理下一个8bit数据流,直到将所有的8bit字符都处理完后,此刻CRC寄存器中的值即为整个数据流对应的CRC校验码。

下面示出了其计算过程的流程图:

在用C语言编写CRC校验码的实现程序时我们应该注意,生成多项式 对应的十六进制数为0x18005,由于CRC寄存器左移过程中,移出的最高位为1时与 相异或,所以与16bit的CRC寄存器对应并塌圆的生成多项式的十六进制数可用0x8005表示。下面给出并行处理8bit数据流的C源程序:

unsigned short crc_dsp(unsigned short reg, unsigned char data_crc)

//reg为crc寄存器, data_crc为将要处理的8bit数据流

{

unsigned short msb; //crc寄存器将移出的最高1bit

unsigned short data;

unsigned short gx = 0x8005, i = 0; //i为左移次数, gx为生成多项式

data = (unsigned short)data_crc;

data = data 8;

reg = reg ^ data;

do

{

msb = reg 0x8000;

reg = reg 1;

if(msb == 0x8000)

{

reg = reg ^ gx;

}

i++;

}

while(i 8);

return (reg);

}

以上为处理每一个8bit数据流的子程序,在计衫扮算整个数据流的CRC校验码时,我们只需将CRC_reg的初值置为0x0000,求第一个8bit的CRC值,之后,即可将上次求得的CRC值和本次将要处理的8bit数据作为函数实参传递给上述子程序的形参进行处理即可,最终返回的reg值便是我们所想得到的整个数据流的CRC校验值。


当前标题:Crc校验函数c语言 crc校验码c语言
当前URL:http://cqcxhl.cn/article/ddpgddo.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP