#include <stdio.h>
unsigned char crc_low_first( unsigned char *ptr, unsigned char len)//多位元組校驗低位元組先行
{
unsigned char i;
unsigned char crc = 0x00; /* 計算的初始crc值 */
while (len--) //對接收的資料計算校驗值
{
crc ^= *ptr++; //* 每次先與需要計算的資料異或,計算完指向下一資料 *
for (i = 0; i < 8; i++)
{
if ((crc & 0x01) != 0)
crc = (crc >> 1) ^ 0x8c;
else crc = crc >> 1;
}
}
return crc;
}
int main()
{
unsigned char a[15]={0x60, 0x07 , 0x00 , 0x00 , 0x00 , 0x02 , 0x83 , 0x00 , 0x00 , 0x00 , 0x04 , 0xD0, 0x07, 0x00, 0x00};
printf("%x", crc_low_first( a, 15));//多位元組校驗低位元組先行);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/243686.html
標籤:其他開發語言
上一篇:微機原理程式撰寫
下一篇:兩個千萬級別資料對比
