写在前面: 使用python的PYQT5模块进行制作上位机,根据传感器的通讯协议对报文进行解析,里面用到补码。 如果是在下位机(STM32F407)中,因为使用的编程语言为C语言,所以直接定义变量类型为int即可直接求出补码,但是Python中稍微有些不同,请看下面的例子。
以-3为例: 源码:b’1000 0011’ 反码:b’1111 1100’ 补码:b’1111 1101’
1、在python中
bin(-3)结果为'-0b11'
所以我们需要
bin(-3 & 0xff)结果为'0b11111101'
2、在C语言中
我们只需要定义变量类型为char或者int型即可,如果定义的变量与int类型变量不一致(小于int类型的长度),那么我们只需要将定义的变量使用<<
进行以为操作即可。转化之后在使用>>
移回来。
发布者:全栈程序员栈长,转转请注明出处:https://javaforall.cn/2135.html原文链接: