BCC校验(异或校验)原理

BCC(Block Check Character/信息组校验码),因校验码是将所有数据异或得出,故俗称异或校验。具体算法是:将每一个字节的数据(一般是每两个16进制的字符)进行异或后即得到校验码。

工作过程

例如:需要异或校验的16进制数据:01 A0 7C FF 02

相同数据位上的值相同则取0,反之则取1

20 0010 0000 最终结果 22 0010 0010 01 0000 0001 A1 1010 0001 A0 1010 0000 DD 1101 1101 7C 0111 1100 FF 1111 1111 02 0000 0010
  1. 首先从第一个8位数据开始,与第二个8位数据进行异或操作,取得结果。即示例中的01A0进行异或操作,计算结果如下:
    :::::::: 0000 0001(01
    XOR 1010 0000(A0
    结果 1010 0001(A1

  2. 将上次的计算结果,与第三个8位数据进行异或操作,取得结果。即A17C进行异或操作,计算结果如下:
    ::::::::1010 0001(A1
    XOR 0111 1100(7C
    结果 1101 1101(DD

  3. 继续将上次的计算结果,与第四个8位数据进行异或操作,取得结果。即EDFF进行异或操作,计算结果如下:
    ::::::::1101 1101(DD
    XOR 1111 1111(FF
    结果 0010 0010(22

  4. 继续将上次的计算结果,与第五个8位数据进行异或操作,取得结果。即2202进行异或操作,计算结果如下:
    ::::::::0010 0010(22
    XOR 0000 0010(02
    结果 0010 0000(20

  5. 由以上计算分析得出异或校验位为:20

作用

在各种总线通信或者在其他数据信息传递过程中,为了保证数据传递的正确性和可靠性,在数据帧中常加载异或校验位。

异或校验工具

BCC校验(异或校验)在线计算

相关信息

百度百科-数据校验

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐