Hướng dẫn python convert hex string to raw bytes - python chuyển đổi chuỗi hex thành byte thô

13

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Trong Python, làm thế nào để chuyển đổi chuỗi ascii hex thành chuỗi nhị phân?

Example:

01000001B8000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1F

Cần được chuyển đổi thành một chuỗi nhị phân. .

Chỉnh sửa: Đã thay đổi "nhị phân thô" được đề cập thành chuỗi "nhị phân nội bộ thô" để rõ ràng hơn.

Hướng dẫn python convert hex string to raw bytes - python chuyển đổi chuỗi hex thành byte thô

Đã hỏi ngày 9 tháng 12 năm 2011 lúc 12:25Dec 9, 2011 at 12:25

Nấm nấm mặt trăngLunar Mushrooms

7.83016 huy hiệu vàng62 Huy hiệu bạc87 Huy hiệu đồng16 gold badges62 silver badges87 bronze badges

2

import base64
data = base64.b16decode("01000001B8000102030405")

Đã trả lời ngày 9 tháng 12 năm 2011 lúc 12:35Dec 9, 2011 at 12:35

Đây có phải là những gì bạn đang tìm kiếm?

hex_string = '0A'
'{0:b}'.format(int(hex_string, 16))
# returns '1010'

hoặc

''.join('{0:04b}'.format(int(c, 16)) for c in hex_string)

Đã trả lời ngày 9 tháng 12 năm 2011 lúc 12:29Dec 9, 2011 at 12:29

Eumiroeumiroeumiro

199K34 Huy hiệu vàng294 Huy hiệu bạc259 Huy hiệu Đồng34 gold badges294 silver badges259 bronze badges

4

Bạn có thể cần phương pháp chuỗi

hex_string = '0A'
'{0:b}'.format(int(hex_string, 16))
# returns '1010'
1 (Python 2.x).

data= ("01000001B8000102030405060708090A0B0C0D0E0F10111213141516"
    "1718191A1B1C1D1E1F202122232425262728292A2B"
    "2C2D2E2F303132333435362021222324")
data.decode('hex')

Mặt khác, bạn có thể sử dụng

hex_string = '0A'
'{0:b}'.format(int(hex_string, 16))
# returns '1010'
2, nhưng bạn có thể muốn cung cấp một đúng cho tham số thứ hai (
hex_string = '0A'
'{0:b}'.format(int(hex_string, 16))
# returns '1010'
3) nếu đầu vào của bạn chứa các chữ số HEX chữ thường A đến F.

Đã trả lời ngày 24 tháng 12 năm 2011 lúc 22:38Dec 24, 2011 at 22:38

Tzottzottzot

89.4K29 Huy hiệu vàng138 Huy hiệu bạc201 Huy hiệu đồng29 gold badges138 silver badges201 bronze badges

Tôi không hoàn toàn chắc chắn ý bạn là "chuỗi nhị phân". Nếu bạn có nghĩa là một chuỗi lưu trữ dữ liệu nhị phân, bạn có thể sử dụng mô -đun

hex_string = '0A'
'{0:b}'.format(int(hex_string, 16))
# returns '1010'
4.

>>> data = "01000001B8000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435362021222324"
>>> import binascii
>>> binary = binascii.a2b_hex(data)
>>> binary
'\x01\x00\x00\x01\xb8\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456 !"#$'

Tuy nhiên, nếu bạn thực sự muốn một chuỗi chứa nhiều

hex_string = '0A'
'{0:b}'.format(int(hex_string, 16))
# returns '1010'
5 và
hex_string = '0A'
'{0:b}'.format(int(hex_string, 16))
# returns '1010'
6, bạn cần phải đi thêm một giai đoạn:

>>> "".join("{:08b}".format(ord(i)) for i in binary)
'0000000100000000000000000000000110111000000000000000000100000010000000110000010000000101000001100000011100001000000010010000101000001011000011000000110100001110000011110001000000010001000100100001001100010100000101010001011000010111000110000001100100011010000110110001110000011101000111100001111100100000001000010010001000100011001001000010010100100110001001110010100000101001001010100010101100101100001011010010111000101111001100000011000100110010001100110011010000110101001101100010000000100001001000100010001100100100'

Đã trả lời ngày 9 tháng 12 năm 2011 lúc 12:52Dec 9, 2011 at 12:52

David Webbdavid WebbDavid Webb

187K57 Huy hiệu vàng308 Huy hiệu bạc298 Huy hiệu Đồng57 gold badges308 silver badges298 bronze badges

Một cách dễ dàng để thực hiện những gì bạn đang cố gắng làm ... Chuyển đổi chuỗi của bạn thành thập phân hex sau đó sử dụng hàm bin tích hợp để chuyển đổi nó thành nhị phân.

dec_string = int(your_string, 16) #cast as int

bin_string = bin(dec_string) #convert to binary

Đã trả lời ngày 23 tháng 3 năm 2015 lúc 20:41Mar 23, 2015 at 20:41

Hướng dẫn python convert hex string to raw bytes - python chuyển đổi chuỗi hex thành byte thô

Làm thế nào để chuyển đổi một chuỗi hex thành python byte?

Sử dụng bytearray ...
HexAdeCimal_String = "AB".
byte_array = bytearray.Fromhex (Hexadecimal_String).
print(byte_array).

Làm thế nào để chuyển đổi chuỗi hex thành byte?

Để chuyển đổi chuỗi HEX thành mảng byte, trước tiên bạn cần lấy độ dài của chuỗi đã cho và bao gồm nó trong khi tạo một mảng byte mới.byte [] val = new byte [str.length () / 2];byte[] val = new byte[str. length() / 2];

Làm thế nào để bạn viết giá trị hex trong python?

Khi biểu thị số thập lục phân trong Python, tiền tố các số có '0x'.Ngoài ra, sử dụng hàm hex () để chuyển đổi các giá trị thành định dạng thập lục phân cho mục đích hiển thị.prefix the numbers with '0x'. Also, use the hex() function to convert values to hexadecimal format for display purposes.

Làm thế nào để bạn chuyển đổi byte thành thập lục phân?

Để chuyển đổi mảng byte thành giá trị hex, chúng tôi lặp qua từng byte trong mảng và sử dụng định dạng của chuỗi ().Chúng tôi sử dụng %02x để in hai vị trí (02) giá trị thập lục phân (x) và lưu trữ nó trong chuỗi st.Đây là một quá trình tương đối chậm hơn cho chuyển đổi mảng byte lớn.loop through each byte in the array and use String 's format() . We use %02X to print two places ( 02 ) of Hexadecimal ( X ) value and store it in the string st . This is a relatively slower process for large byte array conversion.