【问题标题】:Appending hex values to a list/converting string lists to hex将十六进制值附加到列表/将字符串列表转换为十六进制
【发布时间】:2021-09-21 05:23:55
【问题描述】:

我有一个数据帧,其中每一行都是一个 CAN 消息,必须是十六进制的。但是当我将行放入列表时,单个值将存储为字符串。例如:

['0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x1']

有没有办法改用[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1]

【问题讨论】:

  • 所以你想保留对象类型?可以发一下对象的type()吗?
  • Python 将十六进制文字表示为其拒绝值,例如 [0x01, 0x02][1, 2],因此您必须在字符串或普通整数之间进行选择。

标签: python hex can-bus


【解决方案1】:

很简单!使用int函数上的base参数将十​​六进制字符串转换为整数,您可以使用hex从整数返回十六进制字符串。

# Convert hex string to int
str_vals = ['0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x1']
int_vals = [int(val, 16) for val in str_vals]
# Convert int to hex string
int_vals = [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1]
str_vals = [hex(val) for val in int_vals]

【讨论】:

    猜你喜欢
    • 2018-01-22
    • 1970-01-01
    • 2012-02-03
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2014-12-05
    相关资源
    最近更新 更多