Tùy thuộc vào định dạng trong tệp văn bản, có thể dễ dàng chuyển đổi trực tiếp hơn
>>> b=bytearray['BBA7F69E'.decode['hex']]
hoặc
>>> b=bytearray['BB A7 F6 9E'.replace[' ',''].decode['hex']]
>>> b
bytearray[b'\xbb\xa7\xf6\x9e']
>>> b[0]
187
>>> hex[b[0]]
'0xbb'
>>>
Một bytearray dễ dàng chuyển đổi thành danh sách
>>> list[b] == [0xBB, 0xA7, 0xF6, 0x9E]
True
>>> list[b]
[187, 167, 246, 158]
Nếu bạn muốn thay đổi cách hiển thị danh sách, bạn sẽ cần tạo lớp danh sách của riêng mình
>>> class MyList[list]:
... def __repr__[self]:
... return '['+', '.join["0x%X"%x if type[x] is int else repr[x] for x in self]+']'
...
>>> MyList[b]
[0xBB, 0xA7, 0xF6, 0x9E]
>>> str[MyList[b]]
'[0xBB, 0xA7, 0xF6, 0x9E]'
- Cách chuyển đổi này hoạt động
- Sử dụng codecs.decode
- Nối Hex vào chuỗi
Để nối một giá trị thập lục phân vào một chuỗi, trước tiên, bạn phải chuyển đổi nó và sau đó sử dụng nó để tham gia hai chuỗi này.
Đối với điều này, chúng tôi sẽ sử dụng một hàm chuyển đổi HEX thành chuỗi và trả lại nó dưới dạng chuỗi.fromhex[] function.
Đôi khi, giá trị hex có thể được đi trước bởi 0x 0x. Chức năng của chúng tôi kiểm tra xem đây có phải là trường hợp hay không và loại bỏ hai ký tự này khỏi chuỗi.Bởi vì hàm trả về một giá trị chuỗi, nó có thể được nối với một chuỗi khác.decode[] function decodes bytearray and returns a string in utf-8 format.
hello
Đây là giá trị trả lại.
ValueError: non-hexadecimal number found in fromhex[] arg at position 0
Làm thế nào để chuyển đổi một hex thành chuỗi trong python?
print[b'hello'.hex[]]
# Bây giờ, sử dụng hàm int [] để chuyển đổi chuỗi thập lục phân sang chuỗi thập phân. Convertion = int [test_string, 16] # Cuối cùng, kết quả in. In ["Chuỗi thập phân được chuyển đổi thành chuỗi thập phân là:" + str [chuyển đổi]]]
Cách chuyển đổi này hoạt động
Sử dụng codecs.decode
0x68 0x65 0x6c 0x6c 0x6f
Đây là một hướng dẫn về cách chuyển đổi số thập lục phân thành các chuỗi trong Python. Khi làm việc với các số HEX, có thể khó đọc hoặc so sánh chúng, vì vậy việc chuyển đổi chúng thành các chuỗi sẽ làm cho quá trình dễ dàng hơn. at the beginning means that the value should be treated as a hexadecimal value.
Cách dễ nhất để chuyển đổi giá trị thập lục phân sang chuỗi là sử dụng hàm từHex [].
| Hàm này lấy giá trị thập lục phân làm tham số và chuyển đổi nó thành một chuỗi. Hàm giải mã [] giải mã bytearray và trả về một chuỗi ở định dạng UTF-8. | Lưu ý rằng trong chuỗi chỉ có các số từ 0 đến 9 và các chữ cái từ trên A A đến F F F. Nếu bạn đặt bất kỳ chữ cái nào khác, Python sẽ trả lại lỗi: | Bạn có thể nhanh chóng chuyển đổi chuỗi này trở lại Hex bằng mã này: |
0x68 | 104 | Phải có những người khác ở đầu chuỗi cho biết giá trị được chuyển đổi thành byte.*16^1 + 8*16^0 = 6*16 + 8 * 1 = 104 | Nếu bạn chia chuỗi này thành các giá trị riêng lẻ, bạn sẽ nhận được: |
0x65 | 101 | 0x 0x & NBSP; Lúc đầu có nghĩa là giá trị nên được coi là giá trị thập lục phân.*16^1 + 5*16^0 = 6*16 + 5 * 1 = 101 | Bảng này cho thấy cách mỗi giá trị được chuyển đổi thành một chữ cái. |
0x6c | 108 | Hex*16^1 + 12*16^0 = 6*16 + 12 * 1 = 108 | Tháng mười hai |
0x6c | 108 | Hex*16^1 + 12*16^0 = 6*16 + 12 * 1 = 108 | Tháng mười hai |
0x6f | 111 | Hoạt động*16^1 + 15*16^0 = 6*16 + 15 * 1 = 111 | Ascii |
Sử dụng codecs.decode
Đây là một hướng dẫn về cách chuyển đổi số thập lục phân thành các chuỗi trong Python. Khi làm việc với các số HEX, có thể khó đọc hoặc so sánh chúng, vì vậy việc chuyển đổi chúng thành các chuỗi sẽ làm cho quá trình dễ dàng hơn.codecs.decode is another method you can use to achieve the same result. It takes three arguments: the bytes object, encoding, and error [specifies how errors should be handled].
import codecs
my_string = "68656c6c6f"
my_string_bytes = bytes[my_string, encoding='utf-8']
binary_string = codecs.decode[my_string_bytes, "hex"]
print[str[binary_string, 'utf-8']]
Biến MY_STRING_BYTES chuyển đổi một chuỗi thành byte bằng UTF-8. Bây giờ, biến này có thể được truyền như là đối số đầu tiên. Đối số thứ hai là Hex Hex, vì chúng tôi muốn chuyển đổi giá trị hex thành một chuỗi.my_string_bytes variable converts a string to bytes using utf-8. Now, this variable can be passed as the first argument. The second argument is “hex” as we want to convert the hex value to a string.
Mã này trả về cùng một chuỗi như trước:
hello
Nối Hex vào chuỗi
Để nối một giá trị thập lục phân vào một chuỗi, trước tiên, bạn phải chuyển đổi nó và sau đó sử dụng nó để tham gia hai chuỗi này.
Đối với điều này, chúng tôi sẽ sử dụng một hàm chuyển đổi HEX thành chuỗi và trả lại nó dưới dạng chuỗi.
>>> b=bytearray['BB A7 F6 9E'.replace[' ',''].decode['hex']]
>>> b
bytearray[b'\xbb\xa7\xf6\x9e']
>>> b[0]
187
>>> hex[b[0]]
'0xbb'
>>>
1Đôi khi, giá trị hex có thể được đi trước bởi 0x 0x. Chức năng của chúng tôi kiểm tra xem đây có phải là trường hợp hay không và loại bỏ hai ký tự này khỏi chuỗi.
Bởi vì hàm trả về một giá trị chuỗi, nó có thể được nối với một chuỗi khác.
Đây là giá trị trả lại.
>>> b=bytearray['BB A7 F6 9E'.replace[' ',''].decode['hex']]
>>> b
bytearray[b'\xbb\xa7\xf6\x9e']
>>> b[0]
187
>>> hex[b[0]]
'0xbb'
>>>
2