在Python中将字节转换为字符串或数字

时间:2019-04-24 08:16:33

标签: python string byte

我想从有效载荷中获取前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个byte_contents转换为单个数字或字符串。

3 个答案:

答案 0 :(得分:2)

如果您正在读取字节,则表示您正在读取0到255之间的整数。因此,您可以将这些数字快速转换为以10为底的数字,例如:int(str(byte), 2)

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

答案 1 :(得分:1)

如果您使用的是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

答案 2 :(得分:0)

dst_mac = ''
for byte_pos in range(6):
    dst_mac = dst_mac + str(hex((ord(payload[byte_pos])))[2:])
print dst_mac

这样,就可以了。

谢谢