#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
//$BDICI,0184268,24000000,0000011,6,60,3,N,0*3F
char a[] = "BDICI,0184268,24000000,0000011,6,60,3,N,0";
uint8_t xor_checksum(const uint8_t* buffer, uint16_t len)
{
//0 ^ n = n
uint8_t sum = 0;
for (uint16_t i = 0; i < len; i++)
sum ^= buffer[i];
return sum;
}
int main()
{
printf("%02X\n", xor_checksum(a, strlen(a)));
return(0);
}
【北斗异或校验和算法】
于 2022-02-24 23:31:38 首次发布