项目场景:

例如:数据的处理合格校验的过程中,出现需要(异或)校验的情况,这边只会python 脚本,那就快速来完成并记录一下吧

  • BCC(Block Check Character/信息组校验码),因校验码是将所有数据异或得出,故俗称异或校验。具体算法是:将每一个字节的数据(一般是两个16进制的字符)进行异或后即得到校验码。
    例如16进制数据:01 A0 7C FF 02
    计算:01 xor A0 xor 7C xor FF xor 02 = 20
    校验码是:20
    下面已16进制的为例子,其他的bytes等自己处理

问题描述

脚本处理数据的过程中,需要计算出校验码,校验码是根据bcc 来计算得出的,那么就可以通过脚本来实现这一的功能

例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据
APP 中接收数据代码:

str1 = '01A07CFF02' # 16进制,其实也是str
res = None
print(type(0x00))
# 步长是2,两个16进制未是一个字节
for x in range(0, len(str1), 2):hex_str = int("0x" + str1[x:x + 2],16)# 把16进制转10进制print(hex_str)if x:# 第一个res  ^= hex_strelse:res  = hex_str ^ 0print(res ) #0x20
print(hex(res ))#20

这一计算得出的结果就是 20 ,可能你会发现20 在这边的所有里面是不存在的,具有唯一性


原因分析:

一开始是想找一个包来实现的,但是发现BCC 的原理是比较简单的,搜索也可以查询到很多的方法,然后就学习参考下,自己验证测试下,所以以后还是自己努力学习!!丰富知识!!!

【Python】快速实现BCC (异或)校验的计算相关推荐

  1. BCC异或校验 Linux C

    1.BCC异或校验 从输入的HEX第一个字节开始,按字节依次循环计算异或值直到HEX结尾字节,得到的最终一个字节值. 2.C程序 /********************************** ...

  2. BCC异或校验及BCC在Matlab中的实现

    BCC异或校验及BCC在Matlab中的实现 BCC异或校验算法 BCC异或校验算法的MATLAB实现 总结 BCC异或校验算法 BCC异或校验算法较常用于数据包发送中校验位的计算,其方法是依次对前面 ...

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

    BCC校验(异或校验)在线计算 http://www.ip33.com/bcc.html

  4. bcc校验c语言实现,Linux BCC(异或校验)计算命令行工具

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

  5. Java 进行BCC异或校验

    功能是将传进去的一组十六进制字符串,将其转换成十六进制的异或值 如: hex 31353738 return 1578 public static String getBCC(String hex) ...

  6. 【JavaScript】硬件通讯数据校验 BCC异或校验生成 按位取反 十六进制数据格式化

    十六进制(简写为hex或下标16)是一种基数为16的计数系统,是一种逢16进1的[进位制].通常用数字0.1.2.3.4.5.6.7.8.9和字母A.B.C.D.E.F(a.b.c.d.e.f)表示, ...

  7. DSP学习--BCC校验(异或校验)

    检验值(LRC) Data 部分数据各字节异或值. 参看:BCC校验(异或校验)在线计算 #include <stdio.h> #include <string.h> #inc ...

  8. CRC(循环冗余校验) BCC校验(异或校验) 温度换算 在线计算

    1,CRC(循环冗余校验)在线计算 2,BCC校验(异或校验)在线计算 3,温度换算 4,在线换算器

  9. BCC校验(异或校验)原理

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

最新文章

  1. 华为AR28-31配置光纤接入
  2. python类对象和实例对象
  3. .NET 开发环境中使用VSN版本控制
  4. python第三方库numpy-浅谈python的第三方库——numpy(终)
  5. 02数据结构——算法概念
  6. 去除字符串中的指定字符
  7. 波音737-800座位图哪个好_澳媒一张图揭秘,飞机选座秘诀!经济舱最舒适的位置在这儿...
  8. 计算机视觉与深度学习 | OpenCV3.0.0及高版本安装文件(build/sources)及视频教程
  9. 代理模式用来初始化的延迟下载
  10. layui内置loading等待加载
  11. codeforces71A-C语言解题报告
  12. 【并发技术01】传统线程技术中创建线程的两种方式
  13. 常见面试算法:朴素贝叶斯
  14. min-width_min-height_max-width_max-height 设置元素最小或最大长度
  15. 使用 customize-cra 修改 webpack 配置
  16. 计算机设置ip后提示未识别网络连接,Win7出现提示“未识别的网络无Internet访问”怎么解决?...
  17. 赵小楼《天道》《遥远的救世主》深度解析(144)问题本身就是答案。需要强调的东西不是本来的那个东西。
  18. Java工作5年的迷茫,是否要转互联网?
  19. 关于给hexo博客增加视频vlog页面(主要引入哔哩哔哩视频)
  20. 写一篇简单的TileMap入门教程

热门文章

  1. 单片机都是相通的,一通百通
  2. ReactNative之Image组件自适应高度,图片自适应大小
  3. 小程序性能优化之页面预加载方案——让你的小程序运行如飞 集成篇
  4. 米联客 ZYNQ/SOC精品教程 S02-CH13 CAN总线通信实验
  5. 【使用篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview
  6. 第二十五题:二叉树的序列化和反序列化(Java)
  7. 【HTML5】2.语法入门总结(第二部分)
  8. MobileIron任命Jeroen Nooijen为亚太和日本销售副总裁
  9. Glide 4.9源码解析-图片加载流程
  10. 利用计算机解题的步奏,怎样利用电子计算机 第七讲 使用计算机解题的全过程...