Hàm hex[] có thể được sử dụng để chuyển đổi một chuỗi thành giá trị thập lục phân. Trước khi sử dụng hàm, giá trị phải được chuyển đổi thành byte
1
2
s = 'xin chào'. mã hóa['utf-8']
in[s. hex[]]
Giá trị được trả về dưới dạng chuỗi đại diện cho giá trị thập lục phân
68656c6c6f
Chia các giá trị này thành các số hex
0x68 0x65 0x6c 0x6c 0x6f
Bạn có thể thấy, các giá trị này được tính như thế nào
Giải mã giá trị trở lại một chuỗi
Nếu bạn muốn giải mã chuỗi hex này thành một chuỗi, bạn có thể sử dụng đoạn mã sau hoặc đọc hướng dẫn này
Chúng tôi có hai phương pháp để chuyển đổi chuỗi python thành giá trị Hex. Sử dụng hàm int[] và bằng cách nhập literal_eval từ mô-đun ast Python. Trong bài đăng này, chúng ta sẽ tìm hiểu cách chuyển đổi một chuỗi thành số thập lục phân. Nếu bạn chưa quen với Python, bạn có thể xem hướng dẫn của chúng tôi về cách chuyển đổi chuỗi thành danh sách trong Python 3
Sử dụng hàm int[]
Sử dụng int[string, base=16] , chúng ta có thể chuyển đổi chuỗi thành một số nguyên với cơ số 16 [Hệ thập lục phân]. Khi chúng ta có số nguyên, chúng ta có thể sử dụng hàm hex[] sẵn có để chuyển đổi một số nguyên thành số thập lục phân. Vì vậy, khi chúng tôi nhận được một chuỗi, ban đầu chúng tôi sẽ chuyển đổi chuỗi thành một số nguyên. Sau đó, chúng tôi sẽ chuyển đổi giá trị số nguyên sang hệ thập lục phân bằng cách sử dụng hàm hex[]. Hãy để chúng tôi xem nó trong hành động
Mã số
def get_hex[value]:
convert_string = int[value, base=16]
convert_hex = hex[convert_string]
return convert_hex, convert_string
userstring = "0XABC"
convert_hex, convert_string = get_hex[userstring]
print["String to Integer:",convert_string]
print["Integer to Hex:",convert_hex]
đầu ra
String to Integer: 2748
Integer to Hex: 0xabc
sử dụng ast. hàm literal_eval[]
Sử dụng literal_eval từ thư viện ast, chúng ta có thể dễ dàng lấy chuỗi và chuyển nó thành số nguyên. Sau đó, chúng ta có thể sử dụng hàm hex[] để lấy giá trị Hệ thập lục phân. Tất cả những gì chúng ta phải làm là nhập hàm literal_eval từ ast. Chúng ta hãy xem xét một ví dụ
Để chuyển đổi một chuỗi thập lục phân thành một số nguyên, hãy chuyển chuỗi đó làm đối số đầu tiên vào hàm
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 401 tích hợp của Python. Sử dụng
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 402 làm đối số thứ hai của hàm
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 401 để xác định rằng chuỗi đã cho là một số hex. Hàm
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 401 sau đó sẽ chuyển đổi chuỗi hex thành số nguyên có cơ số 10 và trả về kết quả
Đây là một ví dụ tối thiểu
________số 8_______ví dụ
Và đây là cách bạn có thể chuyển đổi các ví dụ bổ sung được hiển thị ở trên
>>> int['0x0', base=16] 0 >>> int['0x4', base=16] 4 >>> int['0x8', base=16] 8 >>> int['0x12', base=16] 18 >>> int['0x16', base=16] 22 >>> int['0x20', base=16] 32 >>> int['0x24', base=16] 36 >>> int['0x28', base=16] 40
Bạn thực sự không cần sử dụng tiền tố
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 405 vì đối số thứ hai của bạn đã xác định rõ ràng rằng chuỗi đã cho là một số thập lục phân
>>> int['0', base=16] 0 >>> int['4', base=16] 4 >>> int['8', base=16] 8 >>> int['12', base=16] 18 >>> int['16', base=16] 22 >>> int['20', base=16] 32 >>> int['24', base=16] 36 >>> int['28', base=16] 40
Tuy nhiên, bỏ qua cơ sở nhưng để lại tiền tố làm tăng
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 406
>>> int['0x28'] Traceback [most recent call last]: File "", line 1, in int['0x28'] ValueError: invalid literal for int[] with base 10: '0x28'
Nó giả định rằng chuỗi đầu vào ở cơ số 10 trong khi thực tế không phải vậy
💡 Lưu ý. Mặc dù việc chuyển một chuỗi có tiền tố
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 407 vào hàm
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 401 là rõ ràng, nhưng hàm
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 401 của Python không chấp nhận nó nếu bạn cũng không xác định cơ số. Điều này có thể được khắc phục trong các phiên bản sau
Trên thực tế, bạn có thể chỉ định đối số cơ sở là 0 để bật tính năng đoán cơ sở—dù sao đó cũng phải là hành vi mặc định
Đoán cơ sở
Bạn có thể chuyển một chuỗi có tiền tố
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 407 vào hàm
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 401 và đặt cơ sở thành 0 để bật tính năng đoán cơ sở trong Python. Điều này sử dụng tiền tố để xác định cơ số một cách tự động—mà bạn không cần phải đặt nó thành
>>> int['0xff', base=16] 2552. Tuy nhiên, bạn vẫn phải đặt nó thành
>>> int['0xff', base=16] 2553 để lợi ích là không đáng kể trong thực tế
>>> int['0x9', base=16] 9 >>> int['0x9', base=0] 9 >>> int['0x9', 0] 9
Chuyển đổi chữ Hex thành Int
Nếu bạn không có chuỗi hex mà là số hex—được gọi là ký tự—chẳng hạn như
>>> int['0xff', base=16] 2554, bạn thậm chí không cần hàm
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 401 vì Python sẽ tự động chuyển đổi nó thành số thập phân
>>> 0x10 16 >>> 0xff 255
Nền int[]
Syntax: int[value [, base]] --> int
Đối số>>> int['0xff', base=16] 2556Một đối tượng Python được chuyển đổi thành một số nguyên. Đối tượng giá trị phải có một phương thức
>>> int['0xff', base=16] 2557 trả về số nguyên được liên kết—nếu không, một
>>> int['0xff', base=16] 2558 sẽ được nâng lên.
>>> int['0xff', base=16] 2559Một đối số số nguyên tùy chọn
>>> int['0xff', base=16] 2559 để xác định cơ sở của hệ thống số trong đối số
>>> int['0xff', base=16] 2556. Nếu bạn đặt cơ sở, đối số
>>> int['0xff', base=16] 2556 phải là một chuỗi. Đối số
>>> int['0xff', base=16] 2559 xác định cách diễn giải đối số chuỗi. Giá trị trả về_______9_______4Trả về một số nguyên sau khi chuyển đổi đối số đầu vào
>>> int['0xff', base=16] 2556 bằng cách sử dụng phương thức
>>> int['0xff', base=16] 2557 cần thiết cho quá trình chuyển đổi
Hàm int[] trong Python
Xem video này trên YouTube
Bạn vẫn cần thêm thông tin cơ bản về hàm
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 401 tích hợp sẵn của Python chứ?
Hướng dẫn liên quan. Chức năng
0x0 --> 0 0x4 --> 4 0x8 --> 8 0x12 --> 18 0x16 --> 22 0x20 --> 32 0x24 --> 36 0x28 --> 401 tích hợp sẵn của Python
Bảng Hex sang Int
Để giải trí, đây là phép chuyển đổi từ hex sang int của lũy thừa hai
Hexadecimal LiteralDecimal Literal1122448810hex16dec20hex32dec40hex64dec80hex128dec100hex256dec200hex512dec400hex1024dec800hex2048dec1000hex4096dec2000hex8192dec4000hex16,384dec8000hex32,768dec10000hex65,536dec👉 Hướng dẫn đề xuất. Chuyển đổi chuỗi Hex thành byte
Nếu bạn muốn tìm hiểu cách chuyển đổi không chỉ một mà nhiều số nguyên thành một chuỗi hex duy nhất, hãy xem hướng dẫn chuyên sâu của chúng tôi trên blog Finxter
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây