Python 带符号十进制数转输出高低位的方法
目录
凌顺实验室(lingshunlab.com)有时候在进行一些编写通信协议的时候,数据超过255时就把数据分为高位和底位的使用场景,例如CANBUS,MODBUS等等。
在这里记录一下,如何把带符号十进制数输出高低位方法,方便数据传输。在接收方收到高位和地位后再合并一起,得出传输的数据。
代码实现
# welcome to lingshunlab.com
# 带符号十进制数转输出高低位的方法
# signed int16 带符号16位整型 取值范围是 -32768~32767
# ***此方法仅适用在此取值范围使用
def changeHL(signednum):
high = abs(signednum) >> 8
low = abs(signednum) & 0xff
# 负数补位
if signednum < 0:
temp = 65536 - abs(signednum)
high = abs(signednum) >> 8
low = abs(signednum) & 0xff
return high, low