【问题标题】:Left pad hex list左焊盘十六进制列表
【发布时间】:2012-02-21 16:28:00
【问题描述】:

如何在 Python 3 中更改我的代码:

v = b'\x8c\x00'
' '.join([hex(i) for i in v])

这样'0x8c 0x0'变成'8c 00'

/巴里

【问题讨论】:

  • [hex](i) 不是有效代码。你是说hex(i) 吗?

标签: python python-3.x


【解决方案1】:
v = b'\x8c\x00'
print(' '.join(['{:02x}'.format(i) for i in v]))

产量

8c 00

【讨论】:

    【解决方案2】:

    (假设您使用的是 Python 3.x。)

    一种选择是使用binascii.hexlify() 转换为十六进制字符串,并在需要时在第二步中插入空格:

    s = binascii.hexlify(v)
    s = b" ".join(s[i:i + 2] for i in range(0, len(s), 2))
    

    这将首先将s 设置为b'8c00',然后在第二步设置b'8c 00'。如果你需要str而不是bytes,你可以使用s.decode("ascii")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 2018-07-26
      • 2011-12-09
      • 2016-02-06
      • 1970-01-01
      • 2014-08-24
      • 1970-01-01
      相关资源
      最近更新 更多