在python中,如何将十六进制ascii字符串转换为原始内部二进制字符串?

Lun*_*oms 9 python

在python中,如何将十六进制ASCII字符串转换为二进制字符串?

例:

01000001B8000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435362021222324

需要转换为二进制字符串.(0A需要被转换为1010,不为ASCII位1000001这是65)

编辑:将有问题的"原始二进制"更改为"原始内部二进制"字符串,以便更清晰.

ful*_*ton 14

import base64
data = base64.b16decode("01000001B8000102030405")
Run Code Online (Sandbox Code Playgroud)


eum*_*iro 9

这是你在寻找什么?

hex_string = '0A'
'{0:b}'.format(int(hex_string, 16))
# returns '1010'
Run Code Online (Sandbox Code Playgroud)

要么

''.join('{0:04b}'.format(int(c, 16)) for c in hex_string)
Run Code Online (Sandbox Code Playgroud)

  • 你有没有试过你的字符串?它的伟大工程(`int`s可以具有任何尺寸):`'100000000000000000000000110111000000000000000000100000010000000110000010000000101000001100000011100001000000010010000101000001011000011000000110100001110000011110001000000010001000100100001001100010100000101010001011000010111000110000001100100011010000110110001110000011101000111100001111100100000001000010010001000100011001001000010010100100110001001110010100000101001001010100010101100101100001011010010111000101111001100000011000100110010001100110011010000110101001101100010000000100001001000100010001100100100'` (2认同)

tzo*_*zot 7

您可能需要.decode('hex')字符串方法(Python 2.x).

data= ("01000001B8000102030405060708090A0B0C0D0E0F10111213141516"
    "1718191A1B1C1D1E1F202122232425262728292A2B"
    "2C2D2E2F303132333435362021222324")
data.decode('hex')
Run Code Online (Sandbox Code Playgroud)

否则,您可以使用base64.b16decode,但casefold如果您的输入包含小写十六进制数字A到F ,您可能希望为第二个参数()提供True .