原创crc8计算方法,直截了当,一看就懂

来源:本站
导读:目前正在解读《原创crc8计算方法,直截了当,一看就懂》的相关信息,《原创crc8计算方法,直截了当,一看就懂》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《原创crc8计算方法,直截了当,一看就懂》的详细说明。
简介:计算原理:首先把前面两个数据整合成一个16bit数据,对多项式进行异或运算,求出余数再加上后面的一个字节数据,在进行求余,以此类推,加到最后一个数据结束后,别忘了后面还需要对数据进行补充8个0,于是在左移动8位,对多项式求余数,最后所得为crc值。

计算原理,首先把前面两个数据整合成一个16bit数据,对多项式进行异或运算,求出余数再加上后面的一个字节数据,在进行求余,以此类推,加到最后一个数据结束后,别忘了后面还需要对数据进行补充8个0,于是在左移动8位,对多项式求余数,最后所得为crc值。

uchar crc_8(uchar data_1,uchar data_2,uchar data_3,uchar data_4)

{

long data,crc_cal,msb_det;

uchar bit_num=16;

uint crc_data;

crc_cal=0x107;//

msb_det=0x8000;

data=data_1;

data<<=8;

data=data+data_2;

while(bit_num>=9)

{

if ((data&msb_det)==0)//判断最高位

{ msb_det=msb_det>>1;

bit_num--;

}

data=data^(crc_cal<<(bit_num-9));

}

data=(data<<8)|data_3;

bit_num=bit_num+8;

msb_det=0x8000;

while(bit_num>=9)

{

if ((data&msb_det)==0)//判断最高位

{ msb_det=msb_det>>1;

bit_num--;

}

data=data^(crc_cal<<(bit_num-9));

}

data=(data<<8)|data_4;

bit_num=bit_num+8;

msb_det=0x8000;

while(bit_num>=9)

{

if ((data&msb_det)==0)//判断最高位

{ msb_det=msb_det>>1;

bit_num--;

}

data=data^(crc_cal<<(bit_num-9));

}

data=data<<8;

bit_num=bit_num+8;

msb_det=0x8000;

while(bit_num>=9)

{

if ((data&msb_det)==0)//判断最高位

{ msb_det=msb_det>>1;

bit_num--;

}

data=data^(crc_cal<<(bit_num-9));

}

crc_data=data;

return crc_data;

}

提醒:《原创crc8计算方法,直截了当,一看就懂》最后刷新时间 2024-03-14 01:08:59,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《原创crc8计算方法,直截了当,一看就懂》该内容的真实性请自行鉴别。