从点火序列中读取十六进制或十进制

时间:2018-10-03 23:02:07

标签: python serial-port hex decimal ignition

我有一个返回23个十六进制值的串行设备。我在点火中使用system.serial.readBytes('COM1', 23)读取了值。这将返回array('b', [-85, 112, 1, 18, -79, 0, 1, 116, -41, 2, -17, 10, 28, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0])。我知道这里的值是带符号2的补码中的十进制值,但是如何获得十进制值?例如,-85应为171,或十六进制为0xAB。我希望直接读取十六进制值,但是我不知道该怎么做。有想法吗?

1 个答案:

答案 0 :(得分:0)

您可以轻松地将它们转换为十进制值。

def signed2unsigned(val):
    if val >= 0:
        return val
    else:
        return 256+val