C51编程:lyl627目前有
//ID,CODE,value1,value2,value3分别保存在以下相应数组,低字节在前,高字节在后
unsigned char id[10],code[4],value1[4],value2[4],value3[4]
应该使用
unsigned char crc;
还是
unsigned int crc;
和这样几个数组保存着数据
我目前使用的协议中要求我的CRC校验算法是这样的
1.如果
ID=1234567890,CODE=1,value1=10,value2=0,value3=0
即:ID=1234567890即unsigned char id[10]={0x00,0x09,0x08,0x07...0x01}
其他以此类推
那么
CRC='1'+'2'+'3'+'4'+'5'+'6'+'7'+'8'+'9'+'0'+'0'+'0'+'0'+'1'+'0'+'0'+'1'+'0
'+'0'+'0'+'0'+'0'+'0'+'0'+'0'+'0'
那么它的CRC算法的C语言形式因该是怎么样的呢?是不是就是它们的 简单相加呀!
它们的简单相加因该会溢出吧!只用unsigned char范围够吗?
2. 如果使用此CRC校验算法,C语言又因该如何描述
ID=1234567890,CODE=1,value1=10,value2=0,value3=0
CRC=(ID+CODE+value1+value2+value2)%10000
即
CRC=(1234567890+1+10+0+0)%10000
小弟C语言的还不是精通,目前这两个算法不知道如何实现,望各位前辈
能给小弟指点!