【问题标题】:Convert bytes to string or number in Python在 Python 中将字节转换为字符串或数字
【发布时间】:2019-09-13 11:22:44
【问题描述】:

我想从负载中获取前 6 个字节作为单个数字或字符串。

for byte_pos in range(6):
   byte_content  = ord(payload[byte_pos])

假设有效载荷为 1 2 3 4 5 6,

for byte_pos in range(6):
   print ord(payload[byte_pos])

结果如下, 0x1 0x2 0x3 0x4 0x5 0x6

但我需要的是一个像 123456 这样的单个数字/字符串。如何将这些单个数字组合成 123456?

如何将这 6 个字节内容转换为单个数字或字符串。

【问题讨论】:

  • 举个例子就好了。

标签: python string byte


【解决方案1】:

如果您正在读取字节,则意味着您正在读取从 0 到 255 的整数。因此您可以像这样将这些数字快速转换为 base-10:int(str(byte), 2)

如果要将字节转换为字符,可以使用 chr() 函数:char = chr(int(str(byte), 2))

【讨论】:

    【解决方案2】:

    如果您正在使用 Python 2.x,这是一个答案(如果我理解您想要做什么):

    payload  = bytearray(b'\x41\x42\x43') #Hex code for ABC
    final_string = ''
    
    
    for byte_pos in range(3):
       byte_content  = chr(payload[byte_pos])
       #print byte_content
       final_string = final_string + byte_content
       print final_string
    

    输出将是:

    A
    AB
    ABC
    

    【讨论】:

      【解决方案3】:
      dst_mac = ''
      for byte_pos in range(6):
          dst_mac = dst_mac + str(hex((ord(payload[byte_pos])))[2:])
      print dst_mac
      

      这样就成功了。

      谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-14
        • 2015-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多