Xây dựng vấn đề
Cho một chuỗi ở dạng thập lục phân:
s = '0xff' # or: s = 'ff'
Làm thế nào để chuyển đổi chuỗi hex thành một số nguyên trong Python?
Ví dụ: bạn muốn chuyển đổi chuỗi thập lục phân '0xff'
sang số nguyên thập phân
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 400.
Dưới đây là một vài ví dụ khác:
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 40
Chuỗi hex để số nguyên bằng int [] với cơ sở 16
Để chuyển đổi một chuỗi thập lục phân thành một số nguyên, hãy truyền chuỗi dưới dạng đối số đầu tiên thành hàm
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 401 tích hợp 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 để chỉ định rằng chuỗi đã cho là 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 một số nguyên với cơ sở 10 và trả về kết quả.
Ở đây, một ví dụ tối thiểu:
>>> int['0xff', base=16] 255
Ví dụ
Và ở đây, 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 phải 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 đã định nghĩa rõ ràng rằng chuỗi đã cho là 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ố 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 nằm trong cơ sở 10 khi trên thực tế, nó không phải là.
💡 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à không rõ ràng, chức năng Python tựa
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 401 không chấp nhận nó nếu bạn không định nghĩa cơ sở. Điều này có thể được sửa trong các phiên bản trong tương lai!Note: Even though passing a prefixed string
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 407 into the
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 401 function is unambiguous, Python’s
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 401 function doesn’t accept it if you don’t also define the base. This may be fixed in future versions!
Trên thực tế, bạn có thể chỉ định đối số cơ sở là 0 để bật cơ sở đoán, đó 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 chức năng
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 dự đoán cơ sở trong Python. Điều này sử dụng tiền tố để xác định cơ sở tự động mà không cần bạn cần đặ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à bên lề 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 nhưng số hex, gọi là một loại nghĩa đen 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:literal—such as
>>> int['0xff', base=16] 2554, you don’t even need the
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 401 function because Python will automatically convert it to a decimal number:
>>> 0x10 16 >>> 0xff 255
Nền int []
________số 8Tranh luận | >>> int['0xff', base=16] 2556 | Mộ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 liên quan, nếu không một >>> int['0xff', base=16] 2558 sẽ được nâng lên. |
>>> int['0xff', base=16] 2559 | Mộ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 giải thích đối số chuỗi. | |
Giá trị trả về | >>> 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] 404 | Trả về một số nguyên sau khi chuyển đổi đối số đầu vào >>> int['0xff', base=16] 2556 bằng phương pháp >>> int['0xff', base=16] 2557 yêu cầu của nó để chuyển đổi. |
Hàm python int []
Bạn vẫn cần thêm thông tin cơ bản về chức năng
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 401 tích hợp của Python? Không có vấn đề, đọc qua hướng dẫn liên quan.
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 – > 40
1 tích hợp của Python
Python’s Built-in
0x0 – > 0 0x4 – > 4 0x8 – > 8 0x12 – > 18 0x16 – > 22 0x20 – > 32 0x24 – > 36 0x28 – > 401 Function
Hex to int bảng
Chỉ để cho vui, đây là chuyển đổi hex sang int của sức mạnh của hai:
1 | 1 |
2 | 2 |
4 | 4 |
8 | 8 |
10hex | 16dec |
20hex | 32dec |
40hex | 64dec |
80hex | 128dec |
100hex | 256dec |
200hex | 512dec |
400hex | 1024dec |
800hex | 2048dec |
1000hex | 4096dec |
2000hex | 8192dec |
4000hex | 16.384dec |
8000hex | 32.768dec |
10000hex | 65,536dec |
Hướng dẫn được đề xuất: Chuyển đổi chuỗi hex thành byteRecommended Tutorial: Convert Hex String to Bytes
Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.
Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer [Nostarch 2020], đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.
Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.