Hex sang byte python

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

hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
2, hãy chuyển chuỗi đó làm đối số đầu tiên vào phương thức
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
3. Ví dụ:
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
4 mang lại
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
5

Đây là một ví dụ tối thiểu

hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'

🌍 Hướng dẫn đề xuất. Cách chuyển đổi chuỗi Hex thành số nguyên trong Python

ví dụ

Hex sang byte python

Và đây là cách bạn có thể chuyển đổi các ví dụ bổ sung được hiển thị ở trên

>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'

Chuyển đổi Chuỗi Hex có Tiền tố '0x' thành Byte

Hex sang byte python

Nếu chuỗi hex của bạn có tiền tố

hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
6 ở phía trước, bạn có thể chuyển đổi nó thành đối tượng byte bằng cách sử dụng thao tác cắt lớp
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
7 để loại bỏ tiền tố trước khi chuyển đổi nó bằng cách sử dụng
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
8

hex_string = '0x0f'
print(bytes.fromhex(hex_string[2:]))
# b'\x0f'

Nếu bạn không biết cắt lát đủ tốt trong Python, vui lòng xem hướng dẫn chuyên sâu của tôi tại đây

Hướng dẫn cơ bản để cắt lát trong Python

Hex sang byte python

Xem video này trên YouTube

🌍 Hướng dẫn đề xuất. Hướng dẫn cơ bản về Python Slicing

[Khắc phục] Lỗi giá trị Số không phải hệ thập lục phân trong fromhex()

Lưu ý rằng nếu bạn không loại bỏ tiền tố chuỗi hex

hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
6, thì bạn sẽ chạy trong
>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
0

>>> bytes.fromhex('0xff')
Traceback (most recent call last):
  File "", line 1, in 
    bytes.fromhex('0xff')
ValueError: non-hexadecimal number found in fromhex() arg at position 1

Bạn có thể sửa lỗi

>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
0 này bằng cách loại bỏ tiền tố
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
6 bằng cách cắt
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
7 trước khi chuyển nó vào phương thức
>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
4

Chuyển đổi chuỗi Hex thành ByteArray

Hex sang byte python

Một cách đơn giản để chuyển đổi một chuỗi thập lục phân

>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
5 thành loại
>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
6 là sử dụng phương thức
>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
7. Ví dụ:
>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
8 trả về loại
>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
9

Đây là một ví dụ tối thiểu

hex_string = 'deadbeef'
print(bytearray.fromhex(hex_string))
# bytearray(b'\xde\xad\xbe\xef')

🌍 Hướng dẫn đề xuất. Làm cách nào để chuyển đổi chuỗi Hex thành đối tượng Bytearray trong Python?

Sau khi đọc điều này, bạn có thể tự hỏi

Sự khác biệt giữa bytearray và byte là gì?

Sự khác biệt giữa các loại

>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
6 và
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
2 là
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
2 là một phiên bản bất biến của
>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
6. Vì vậy, bạn có thể sửa đổi một đối tượng của cái sau nhưng không phải của cái trước

Ví dụ: hãy tạo cả hai loại từ cùng một

>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
5 như đã học trước đó

hex_string = 'deadbeef'
my_bytes = bytes.fromhex(hex_string)
my_bytearray = bytearray.fromhex(hex_string)

Tiếp theo, bạn sẽ thay đổi biến

hex_string = '0x0f'
print(bytes.fromhex(hex_string[2:]))
# b'\x0f'
5 — không thành vấn đề

print(my_bytearray)
# bytearray(b'\xde\xad\xbe\xef')

# Modify bytearray is possible
my_bytearray[0] = 3

print(my_bytearray)
# bytearray(b'\x03\xad\xbe\xef')

Nhưng điều gì sẽ xảy ra nếu bạn cố sửa đổi biến

hex_string = '0x0f'
print(bytes.fromhex(hex_string[2:]))
# b'\x0f'
6?

>>> my_bytes[0] = 3
Traceback (most recent call last):
  File "", line 1, in 
    my_bytes[0] = 3
TypeError: 'bytes' object does not support item assignment

Để khắc phục lỗi này, đừng thay đổi loại byte trong đoạn mã của bạn hoặc sử dụng loại

>>> bytes.fromhex('01')
b'\x01'
>>> bytes.fromhex('0101')
b'\x01\x01'
>>> bytes.fromhex('04')
b'\x04'
>>> bytes.fromhex('01 0a')
b'\x01\n'
>>> bytes.fromhex('01 02 0e 0f 0f')
b'\x01\x02\x0e\x0f\x0f'
>>> bytes.fromhex('0f0f')
b'\x0f\x0f'
>>> bytes.fromhex('ff')
b'\xff'
6 có thể thay đổi thay vì loại
hex_string = 'ff'
print(bytes.fromhex(hex_string))
# b'\xff'
2 không thể thay đổi

🌍 Hướng dẫn đề xuất. Các đối tượng có thể thay đổi và không thể thay đổi trong Python

Đi đâu từ đây

Hex sang byte python

Cảm ơn bạn đã đọc toàn bộ hướng dẫn—Tôi rất vui và biết ơn vì bạn đã ghé thăm chúng tôi trên blog Finxter vì sứ mệnh của tôi là giúp những lập trình viên như bạn đạt được mục tiêu của họ nhanh hơn

Tôi tin vào sức mạnh biến đổi mà các lập trình viên chúng tôi có để thay đổi thế giới và làm cho nó hiệu quả hơn

Nếu bạn muốn tiếp tục cải thiện kỹ năng của mình, vui lòng xem học viện email miễn phí của tôi và tải xuống Python Cheat Sheets tại đây


Hex sang byte python

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