Python中读取到16进制数如何转成有符号数值
2020-12-13 04:07
阅读:268
标签:turn 符号位 tcp 协议 补码 没有 获取 有符号 强类型 严格 场景:用Python模拟设备做 Modbus TCP 协议时,读取到的寄存器值是S16(有符号16进制数),如何能得到正确的负数值呢? 代码如下: 解释:由于Python不是强类型的语言,对于数据的值的大小没有严格的限制,所以可以直接通过做减法来获得正确的负数值。如果是其他的强类型语言,就需要按照负数补码原理来获取到高位符号位值后再取反处理,获得正确的负数值。 Python中读取到16进制数如何转成有符号数值 标签:turn 符号位 tcp 协议 补码 没有 获取 有符号 强类型 严格 原文地址:https://www.cnblogs.com/yqmcu/p/11104617.html
def get_s16(val):
if val :
return val
else:
return (val - 0x10000)
评论
亲,登录后才可以留言!