Python初学者的疑惑。如何将十六进制值的数组转换为字节?

问题描述 投票:0回答:1
# Recebe o número de 4 dígitos como input
number = input("Digite o número da Conta com 4 dígitos: ")

# Converte cada caracter em uma string e armazena em um array
number_array = list(number)

# Converte os valores '0' em '10' no array
for i in range(len(number_array)):
    if number_array[i] == '0':
        number_array[i] = '10'

# Converte os valores nesse array em hexadecimal
hex_array = [hex(int(num))[2:] for num in number_array]

# Adiciona um 0 antes de cada string dentro do array
final_array = ['0' + num for num in hex_array]

print(final_array)

bytes_sent = ('\x11\xb0\x12') + (final_array[0]) + (final_array[1]) + (final_array[2]) + (final_array[3]) + ('\x01\x08\x01\x01\x02\x02\x0a\x0a\x02\x0a\x02\x40')

print(bytes_sent)

我正在尝试使用数组来填充它

bytes_sent = b'\x11\xb0\x12\x05\x0a\x0a\x0a\x01\x08\x01\x01\x02\x02\x0a\x0a\x02\x0a\x02\x40'

但是不起作用


bytes_sent = '(\x11\xb0\x12)' + (final_array[0]) + (final_array[1]) + (final_array[2]) + (final_array[3]) + '\x01\x08\x01\x01\x02\x02\x0a\x0a\x02\x0a\x02\x40')

有没有办法通过从数组导入值来发送这种格式的字节? enter image description here

python arrays hex
1个回答
0
投票

你的问题不太清楚。 但看来您正在寻找 binascii 模块。

>>> import binascii
>>> 
>>> bytes_sent = b'\x11\xb0\x12\x05\x0a\x0a\x0a\x01\x08\x01\x01\x02\x02\x0a\x0a\x02\x0a\x02\x40'
>>> 
>>> binascii.hexlify(bytes_sent)
b'11b012050a0a0a0108010102020a0a020a0240'
>>> 
>>> binascii.unhexlify('11b012050a0a0a0108010102020a0a020a0240')
b'\x11\xb0\x12\x05\n\n\n\x01\x08\x01\x01\x02\x02\n\n\x02\n\x02@'

如果您还有一些用例 要求将 0x00 映射到 0x0a,好吧,这取决于你。

© www.soinside.com 2019 - 2024. All rights reserved.