【Python】快速实现BCC (异或)校验的计算
项目场景:
例如:数据的处理合格校验的过程中,出现需要(异或)校验的情况,这边只会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 (异或)校验的计算相关推荐
- BCC异或校验 Linux C
1.BCC异或校验 从输入的HEX第一个字节开始,按字节依次循环计算异或值直到HEX结尾字节,得到的最终一个字节值. 2.C程序 /********************************** ...
- BCC异或校验及BCC在Matlab中的实现
BCC异或校验及BCC在Matlab中的实现 BCC异或校验算法 BCC异或校验算法的MATLAB实现 总结 BCC异或校验算法 BCC异或校验算法较常用于数据包发送中校验位的计算,其方法是依次对前面 ...
- BCC校验(异或校验)在线计算
BCC校验(异或校验)在线计算 http://www.ip33.com/bcc.html
- bcc校验c语言实现,Linux BCC(异或校验)计算命令行工具
BCC(Block Check Character/信息组校验码),因校验码是将所有数据异或得出,故俗称异或校验.具体算法是:将每一个字节的数据(一般是两个16进制的字符)进行异或后即得到校验码. 例 ...
- Java 进行BCC异或校验
功能是将传进去的一组十六进制字符串,将其转换成十六进制的异或值 如: hex 31353738 return 1578 public static String getBCC(String hex) ...
- 【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)表示, ...
- DSP学习--BCC校验(异或校验)
检验值(LRC) Data 部分数据各字节异或值. 参看:BCC校验(异或校验)在线计算 #include <stdio.h> #include <string.h> #inc ...
- CRC(循环冗余校验) BCC校验(异或校验) 温度换算 在线计算
1,CRC(循环冗余校验)在线计算 2,BCC校验(异或校验)在线计算 3,温度换算 4,在线换算器
- BCC校验(异或校验)原理
BCC校验(异或校验)原理 BCC(Block Check Character/信息组校验码),因校验码是将所有数据异或得出,故俗称异或校验.具体算法是:将每一个字节的数据(一般是每两个16进制的字符 ...
最新文章
- 华为AR28-31配置光纤接入
- python类对象和实例对象
- .NET 开发环境中使用VSN版本控制
- python第三方库numpy-浅谈python的第三方库——numpy(终)
- 02数据结构——算法概念
- 去除字符串中的指定字符
- 波音737-800座位图哪个好_澳媒一张图揭秘,飞机选座秘诀!经济舱最舒适的位置在这儿...
- 计算机视觉与深度学习 | OpenCV3.0.0及高版本安装文件(build/sources)及视频教程
- 代理模式用来初始化的延迟下载
- layui内置loading等待加载
- codeforces71A-C语言解题报告
- 【并发技术01】传统线程技术中创建线程的两种方式
- 常见面试算法:朴素贝叶斯
- min-width_min-height_max-width_max-height 设置元素最小或最大长度
- 使用 customize-cra 修改 webpack 配置
- 计算机设置ip后提示未识别网络连接,Win7出现提示“未识别的网络无Internet访问”怎么解决?...
- 赵小楼《天道》《遥远的救世主》深度解析(144)问题本身就是答案。需要强调的东西不是本来的那个东西。
- Java工作5年的迷茫,是否要转互联网?
- 关于给hexo博客增加视频vlog页面(主要引入哔哩哔哩视频)
- 写一篇简单的TileMap入门教程
热门文章
- 单片机都是相通的,一通百通
- ReactNative之Image组件自适应高度,图片自适应大小
- 小程序性能优化之页面预加载方案——让你的小程序运行如飞 集成篇
- 米联客 ZYNQ/SOC精品教程 S02-CH13 CAN总线通信实验
- 【使用篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview
- 第二十五题:二叉树的序列化和反序列化(Java)
- 【HTML5】2.语法入门总结(第二部分)
- MobileIron任命Jeroen Nooijen为亚太和日本销售副总裁
- Glide 4.9源码解析-图片加载流程
- 利用计算机解题的步奏,怎样利用电子计算机 第七讲 使用计算机解题的全过程...