Python hex sang nhị phân

💬 câu hỏi. Làm cách nào để chuyển đổi một chuỗi hex đã cho, chẳng hạn như

>>> type[bin[0xfff]]
2 thành số nhị phân, chẳng hạn như
>>> type[bin[0xfff]]
3?

Có nhiều biến thể của vấn đề này tùy thuộc vào cách bạn muốn chuyển đổi và từ loại nào sang loại nào. Trong bài viết này, chúng ta sẽ xem xét các phương pháp khác nhau từ đơn giản đến phức tạp hơn

Bắt đầu nào. 👇

Hex sang nhị phân

Bạn có thể chuyển đổi một số thập lục phân [không phải chuỗi] có tiền tố

>>> type[bin[0xfff]]
4 thành chuỗi nhị phân bằng cách sử dụng hàm có sẵn của Python
>>> type[bin[0xfff]]
5. Ví dụ: biểu thức
>>> type[bin[0xfff]]
6 mang lại chuỗi nhị phân
>>> type[bin[0xfff]]
3

Hãy xem xét một vài ví dụ đơn giản

>>> bin[0xF]
'0b1111'
>>> bin[0x1]
'0b1'
>>> bin[0x2]
'0b10'
>>> bin[0x4]
'0b100'
>>> bin[0x8]
'0b1000'
>>> bin[0xfff]
'0b111111111111'
>>> bin[0x10000]
'0b10000000000000000'

Số thập lục phân sang số nhị phân

Kiểu giá trị trả về của hàm

>>> type[bin[0xfff]]
5 là một chuỗi, i. e. , biểu diễn nhị phân của số nhị phân. Ví dụ:
>>> type[bin[0xfff]]
6 mang lại
>>> type[bin[0xfff]]
3 chứ không phải
>>> type[bin[0xfff]]
01

>>> type[bin[0xfff]]

Để có được biểu diễn nhị phân, bạn chỉ cần chuyển chuỗi nhị phân vào hàm

>>> type[bin[0xfff]]
02 về cơ bản là “chạy” chuỗi dưới dạng đoạn mã mà nó đại diện

như vậy

>>> type[bin[0xfff]]
0

Bằng cách này, bạn luôn có thể chuyển đổi số hex thành số nhị phân và sử dụng biểu diễn chuỗi nhị phân làm số nhị phân trong mã của mình tại bất kỳ thời điểm nào

Chúng tôi vẫn chưa trả lời chính xác câu hỏi làm thế nào để chuyển đổi chuỗi thập lục phân thành số nhị phân trong Python

Chuỗi Hex sang nhị phân

Nếu bạn chuyển một chuỗi thập lục phân thay vì một số thập lục phân vào hàm

>>> type[bin[0xfff]]
03, Python sẽ tăng giá trị
>>> type[bin[0xfff]]
04

>>> type[bin[0xfff]]
6

Để khắc phục lỗi này và chuyển đổi chuỗi thập lục phân thành nhị phân, trước tiên bạn có thể chuyển đổi chuỗi hex thành số thập phân bằng cách sử dụng

>>> type[bin[0xfff]]
05 và chuyển kết quả vào hàm
>>> type[bin[0xfff]]
03 để chuyển đổi nó thành chuỗi nhị phân

>>> type[bin[0xfff]]
9

Kết quả là một biểu diễn chuỗi nhị phân của số nhị phân. Bạn có thể chuyển đổi nó thành số nguyên bất cứ lúc nào bằng cách chuyển nó vào hàm

>>> type[bin[0xfff]]
07 một lần nữa

>>> type[bin[0xfff]]
1

Như bạn có thể thấy, bạn có thể đã tiết kiệm được một chút công sức bằng cách chuyển đổi trực tiếp chuỗi hex thành một số nguyên bằng cách sử dụng hàm

>>> type[bin[0xfff]]
07 chỉ một lần

🌎 Hướng dẫn đề xuất. Làm cách nào để viết chuỗi Hex dưới dạng dữ liệu nhị phân và tệp nhị phân trong Python?

Chuyển đổi Hex sang nhị phân với các chữ số hàng đầu

Để chuyển đổi một chuỗi thập lục phân thành một chuỗi nhị phân có các chữ số

>>> type[bin[0xfff]]
09 đứng đầu, bạn có thể sử dụng hàm
>>> type[bin[0xfff]]
60 trên kết quả của hàm
>>> type[bin[0xfff]]
5 sau khi sử dụng cắt lát
>>> type[bin[0xfff]]
62 để loại bỏ tiền tố nhị phân
>>> type[bin[0xfff]]
63

💡 Phương thức chuỗi

>>> type[bin[0xfff]]
64 điền vào chuỗi từ bên trái bằng các ký tự
>>> type[bin[0xfff]]
65

>>> type[bin[0xfff]]
0

Các chuỗi kết quả không quá hữu ích nếu không thêm lại tiền tố

>>> type[bin[0xfff]]
63

Tuy nhiên, một bài tập nối chuỗi đơn giản có thể làm được điều đó—chẳng hạn như bạn có thể chuyển chuỗi nhị phân kết quả trở lại hàm

>>> type[bin[0xfff]]
07

Trong đoạn mã sau, tôi đã đánh dấu dòng để sửa lỗi

>>> type[bin[0xfff]]
68 khi sử dụng số nhị phân không có tiền tố
>>> type[bin[0xfff]]
63

>>> type[bin[0xfff]]
5

Chuỗi hex thành đối tượng byte bằng cách sử dụng unhexlify[]

Bạn cũng có thể nhập thư viện

>>> type[bin[0xfff]]
90 được tích hợp trong bản cài đặt Python tiêu chuẩn của bạn và chạy
>>> type[bin[0xfff]]
91 để nhận đối tượng bytes.

>>> type[bin[0xfff]]
8

Tuy nhiên, bạn không nên chuyển một chuỗi hex ở định dạng

>>> type[bin[0xfff]]
92 vào đó, nếu không nó sẽ tăng giá trị
>>> type[bin[0xfff]]
93. Thay vào đó, hãy chuyển một chuỗi hex ở định dạng
>>> type[bin[0xfff]]
94 mà không có tiền tố
>>> type[bin[0xfff]]
95 ở đầu

Nói chung, tôi thích phương pháp sau để giải quyết vấn đề này [hex thành byte] vì không cần nhập thư viện

Byte từ hex[]

Để chuyển đổi một chuỗi thập lục phân thành một đối tượng

>>> type[bin[0xfff]]
96, bạn có thể sử dụng hàm
>>> type[bin[0xfff]]
97 và chuyển
>>> type[bin[0xfff]]
98 vào đó dưới dạng một đối số. Không cần tiền tố
>>> type[bin[0xfff]]
95

Đây là một ví dụ đơn giản

>>> type[bin[0xfff]]
7

Chuỗi f để chuyển đổi Hex sang nhị phân

Bạn có thể sử dụng biểu thức f-String

>>> type[bin[0xfff]]
10 để chuyển đổi số thập lục phân
>>> type[bin[0xfff]]
11 thành số nhị phân với
>>> type[bin[0xfff]]
12 đứng đầu các
>>> type[bin[0xfff]]
13

Đây là một ví dụ

>>> type[bin[0xfff]]
0

Bạn có thể thấy ý nghĩa của các phần khác nhau của chuỗi f bằng cách chia nhỏ nó ra như vậy

>>> type[bin[0xfff]]
1

Bạn có thể tìm hiểu thêm về f-Strings trong hướng dẫn đầy đủ của chúng tôi trên blog Finxter

Nguồn. Đoạn mã này được lấy cảm hứng từ câu trả lời SO tuyệt vời từ đây

Đi đâu từ đây

Cảm ơn bạn đã đọc toàn bộ hướng dẫn — và đã dành thời gian quý báu của bạn cho chúng tôi. Chúng tôi muốn giúp bạn luôn tích cực với tư cách là người học trong học viện email miễn phí của chúng tôi

Tham gia với chúng tôi và tải về cheat sheet của bạn ở đây

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

Chủ Đề