Python中整数移位及二进制串操作

本文介绍了如何在Python中处理二进制串和整数移位,以将电压数据按照特定的数据帧格式进行组合。通过示例说明了如何将两个通道的10位数据和12位补零拼接成32位数据单元,并利用移位操作完成数据的组合。在项目中,这种转换用于模拟嵌入式设备发送的数据,以便软件接收端解析处理。
摘要由CSDN通过智能技术生成

Python中整数移位及二进制串操作

        最近一个项目涉及到电压数据的接收和可视化处理。其中电压数据是由FPGA通过TCP协议传输的二进制流,软件接收端需要安装数据帧格式进行解析后处理。由于嵌入式组的FPGA发送程序还处于调试阶段,软件接收端需要先自己写个TCP Server模拟数据发送。项目开发语言是Python
以下是数据帧格式的简单定义:
Alt text
对此数据帧格式的定义其实我个人还是有些看法的!首先是一般数据帧都有header;然后是单通道数据只占用10bit,但是为了对齐32位补了12个零,有点浪费了。不过这个格式是嵌入式组定义的,也不好说什么啦 ?

        那么第一个问题就是在Python中如何将20个bit的两个通道数据和12个bit的补领拼接在一起,形成一个32位的基本数据单元?搜了一下Python的文档,发现Python对二进制串处理相当不友好,根本不能进行类似字符串拼接这类的操作。一筹莫展之下请教了一下大牛,发现自己对于二进制位操作是真的一窍不通!计算机组成原理算是白学了:( 下面进入正题,如何从十进制整数进行位移操作转换为上面截图所示的数据帧格式。

        由FPGA传输过来的电压数据是一个无符号整型(实际电压数据是浮点数,而且有正负,后续还有一个转换的算法,这里不继续透露了),那么假设我们有个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值