当前位置:   article > 正文

BCC校验(异或校验-C语言-示例)

bcc校验

概述

        BCC(Block Check Character//信息组校验码),因校验码是将所有的数据异或得出结果,故称为异或校验。具体算法(将每一个字节的数据,一般是两个16进制的字符,进行异或后即得到校验码)如下:
例如16进制数据:FF 0A 0B 0C 
计算:FF xor 0A xor 0B xor 0C = F2
校验码是:F2

        

一、代码:

  1. uint8_t getBcc(uint8_t *data, uint16_t length)
  2. {
  3. uint8_t i;
  4. uint8_t bcc = 0; // Initial value
  5. #if 1
  6. while(length--)
  7. {
  8. bcc ^= *data++;
  9. }
  10. #else
  11. for ( i = 0; i < length; i++ )
  12. {
  13. bcc ^= data[i]; // crc ^= *data;
  14. }
  15. #endif
  16. return bcc;
  17. }
  18. int main(void)
  19. {
  20. uint8_t data[] = {0xFF, 0x0A, 0x0B, 0x0C};
  21. uint8_t bcc;
  22. bcc = getBcc(data, sizeof(data));
  23. for(uint8_t i = 0; i < sizeof(data); i++) {
  24. printf("data[%d]:%02X\n", i, data[i]);
  25. }
  26. printf("bcc:%02X\n", bcc);
  27. }


在线校验工具:链接

二、运行结果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/435981
推荐阅读
相关标签
  

闽ICP备14008679号