Giải mã hex python 2

Đây là bài hướng dẫn cách chuyển đổi số thập lục phân thành 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 chuỗi sẽ giúp quá trình này dễ dàng hơn

Cách dễ nhất để chuyển đổi giá trị thập lục phân thành chuỗi là sử dụng hàm fromhex[]

1

in[byte. từ hex['68656c6c6f'].giải mã['utf-8']]

Hàm này lấy một 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 decode[] giải mã bytearray và trả về một chuỗi ở định dạng utf-8

hello

Chú ý trong xâu chỉ có các số từ 0 đến 9 và các chữ cái từ “a” đến “f”. Nếu bạn đặt bất kỳ ký tự nào khác, Python sẽ trả về lỗi

ValueError: non-hexadecimal number found in fromhex[] arg at position 0

Bạn có thể nhanh chóng chuyển đổi chuỗi này trở lại hex bằng mã này

1

in[b'xin chào'. hex[]]

Phải có “b” ở đầu chuỗi cho biết giá trị được chuyển đổi thành byte

Cách chuyển đổi này hoạt động

Nếu bạn chia chuỗi này thành các giá trị riêng lẻ, bạn sẽ nhận được

0x68 0x65 0x6c 0x6c 0x6f

“0x”  ở đầu có nghĩa là giá trị phải được coi là giá trị thập lục phân

Bảng này cho biết cách mỗi giá trị được chuyển đổi thành một chữ cái

HexDecOperationASCII0x681046*16^1 + 8*16^0 = 6*16 + 8 * 1 = 104h0x651016*16^1 + 5*16^0 = 6*16 + 5 * 1 = 101e0x6c1086*16^1 + 12*16^

Sử dụng codec. giải mã

các codec. giải mã là một phương pháp khác mà bạn có thể sử dụng để đạt được kết quả tương tự. Phải mất ba đối số. đối tượng byte, mã hóa và lỗi [chỉ định cách xử lý lỗi]

1

2

3

4

5

6

7

nhập codec

 

my_string = "68656c6c6f"

my_string_byte = byte[my_string, encoding='utf-8']

 

binary_string = codec. giải mã[my_string_byte, "]

in[str[binary_string, 'utf-8']]

Biến my_string_bytes chuyển đổi một chuỗi thành byte bằng cách sử dụng utf-8. Bây giờ, biến này có thể được chuyển thành đối số đầu tiên. Đối số thứ hai là “hex” vì chúng tôi muốn chuyển đổi giá trị hex thành một chuỗi

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ó rồi sử dụng nó để nối hai chuỗi này

Đối với điều này, chúng ta sẽ sử dụng một hàm chuyển đổi hex thành chuỗi và trả về dưới dạng chuỗi

1

2

3

4

5

6

7

8

9

10

def hex_to_string[hex]:

    if hex[. 2] == '0x':

        hex = hex[2:]

    string_value = byte. từ hex[hex]. giải mã['utf-8']

    return string_value

 

hex_value = '0x737472696e67'

chuỗi = 'Đây chỉ là ' + hex_to_string['737472696e67']

 

in[chuỗi]

Đôi khi giá trị hex có thể đứng trước “0x”. Hàm của chúng tôi kiểm tra xem đây có phải là trường hợp không và xóa hai ký tự này khỏi chuỗi

Làm cách nào để chuyển đổi hex thành văn bản Python?

Phương pháp 1. Sử dụng fromhex[] và decode[] . Không có thư viện bổ sung được yêu cầu cho phương pháp này.

Làm cách nào để chuyển đổi hex thành int trong Python?

Bạn có thể chuyển đổi chuỗi lục giác thành số nguyên trong Python bằng cách sử dụng phương thức literal_eval[] của thư viện ast [Cây cú pháp trừu tượng] . Ta phải truyền chuỗi hex cho hàm literal_eval[], không có tham số, hàm chuyển chuỗi hex thành số nguyên.

Giá trị hex Python là gì?

Hàm Python hex[] . Chuỗi trả về luôn bắt đầu bằng tiền tố 0x. converts the specified number into a hexadecimal value. The returned string always starts with the prefix 0x .

Chủ Đề