Python byte thành int
Để chuyển đổi byte thành int trong Python, hãy sử dụng int. phương thức from_bytes[]. Một giá trị byte có thể được hoán đổi thành một giá trị int bằng cách sử dụng int. hàm from_bytes[]
số nguyên. Hàm from_bytes[] lấy byte, thứ tự byte, đã ký, * làm tham số và trả về số nguyên được biểu thị bằng mảng byte đã cho
cú pháp
int.from_bytes[bytes, byteorder, *, signed=False]
Tranh luận
byte. Nó là một đối tượng byte
thứ tự phụ. Nó xác định thứ tự biểu diễn giá trị số nguyên. Thứ tự byte có thể có các giá trị là “nhỏ”, trong đó bit quan trọng nhất được lưu trữ ở cuối “lớn”, trong đó MSB được lưu trữ ở đầu và LSB ở cuối
đã ký. Nó có giá trị mặc định Sai. Nó cho biết có đại diện cho phần bù 2 của một số hay không
Giá trị trả về
Nó trả về số nguyên được biểu thị bằng mảng byte đã cho
Thí dụ
# Declaring byte value byte_val = b'\x21\x19' # Converting to int int_val = int.from_bytes[byte_val, "big"] # printing int equivalent print[int_val]
đầu ra
8473
Bạn có thể thấy rằng chúng tôi đã vượt qua byteorder = big. Đối số byteorder xác định thứ tự byte được sử dụng để biểu diễn số nguyên. Nếu thứ tự byte là "nhỏ", thì byte quan trọng nhất nằm ở đầu mảng byte
Vượt qua byteorder = “nhỏ”
Nếu thứ tự byte là "nhỏ", thì byte quan trọng nhất nằm ở cuối mảng byte
# Declaring byte value byte_val = b'\x11\x21' # Converting to int int_val = int.from_bytes[byte_val, "little"] # printing int equivalent print[int_val]
đầu ra
8465
Đã ký = True
số nguyên. phương thức from_bytes[] cũng chấp nhận đối số đã ký. Theo mặc định, giá trị của nó là Sai
Hãy để một ví dụ khác và vượt qua đã ký = True và xem đầu ra
# Declaring byte value byte_val = b'\xfc\x00' # Converting to int int_val = int.from_bytes[byte_val, "big", signed=True] # printing int equivalent print[int_val]
đầu ra
-1024
Tôi hy vọng bạn đã tìm thấy câu trả lời mà bạn đang tìm kiếm và đó là câu trả lời để chuyển đổi byte thành số nguyên trong ví dụ Python
Thông thường, dữ liệu được lưu trữ trong bộ lưu trữ ở định dạng byte. Trong bài viết này, chúng ta sẽ thảo luận về cách chúng ta có thể chuyển đổi dữ liệu được cung cấp dưới dạng byte thành kiểu dữ liệu số nguyên hoặc int trong python. Đối với điều này, chúng tôi sẽ sử dụng phương pháp int.from_bytes[]
Làm cách nào để chuyển đổi byte thành int trong Python?
Chúng tôi sẽ chuyển đổi byte thành int bằng cách sử dụng phương thức int.from_bytes[]
. Cú pháp của phương thức from_bytes[]
như sau
Cú pháp int. from_bytes[]
1
2
3
int. từ_byte[byte, thứ tự byte, *, signed=False]
Nơi đây,
- Tham số
bytes
lấy đối tượng bytes phải được chuyển đổi thành int làm đối số đầu vào. - Tham số
byteorder
được sử dụng để xác định thứ tự byte của đối tượngbytes
được truyền làm đối số đầu vào đầu tiên.- Nếu “
big
” được cung cấp làm đối số đầu vào cho tham số byteorder, thì byte đầu tiên từ phần đầu của đối tượngbytes
được coi là byte quan trọng nhất. - Nếu “
little
” được cung cấp làm đối số đầu vào cho tham sốbyteorder
, thì byte đầu tiên từ cuối đối tượngbytes
được coi là byte quan trọng nhất. - Để sử dụng thứ tự byte của máy đang chạy chương trình, bạn có thể sử dụng thuộc tính
int.from_bytes[]
1 bằng mô-đunint.from_bytes[]
2
- Nếu “
- Tham số
int.from_bytes[]
3 được sử dụng để xác định xem số nguyên được tạo là số nguyên có dấu hay không dấu. Theo mặc định, nó có giá trịint.from_bytes[]
4 biểu thị rằng số nguyên được tạo sẽ không có dấu
Làm cách nào để chuyển đổi byte thành số nguyên đã ký trong Python?
Để chuyển đổi đối tượng byte thành int đã ký, chúng tôi sẽ đặt tham số đã ký thành int.from_bytes[]
5 trong phương thức from_bytes[]
. Để quan sát điều này, trước tiên chúng ta hãy tạo một đối tượng bytes
từ một số nguyên bằng cách sử dụng phương thức int.from_bytes[]
8. Phương thức int.from_bytes[]
9 lấy giá trị số nguyên làm đối số đầu vào đầu tiên, độ dài của đối tượng byte đầu ra làm đối số đầu vào thứ hai và thứ tự byte làm đối số đầu vào thứ ba. Sau khi thực hiện, nó trả về đối tượng bytes. Sau đó, chúng ta có thể chuyển đổi đối tượng bytes thành int bằng cách sử dụng phương thức from_bytes[]
như hình bên dưới
sử dụng int. from_bytes[]
1
2
3
4
5
6
7
8
9
10
11
12
myInt = 123
myBytes = int. to_bytes[myInt, 5, 'big']
in["Đối tượng byte là. ", Bytes của tôi]
đầu ra = int. from_bytes[myBytes, ', signed=True]
in["Đầu ra số nguyên là. ", đầu ra]
myInt1 = 123
myBytes1 = int. to_byte[myInt1, 5, 'little']
in["Đối tượng byte là. ", myBytes1]
đầu ra1 = int. from_bytes[myBytes1, ', signed=True]
in["Đầu ra số nguyên là. ", đầu ra1]
đầu ra
đầu ra
1
2
3
4
5
6
7
Đối tượng byte object là. b'\x00\x00\x00\x00{'
Đầu ra số nguyên là. 123
Đối tượng byte object là. b'{\x00\x00\x00\x00'
Đầu ra số nguyên là. 123
Trong ví dụ trên, trước tiên chúng ta đã tạo một đối tượng byte có độ dài 5. Sau đó, chúng tôi đã chuyển đổi đối tượng byte thành int. Trong đối tượng bytes, bạn có thể quan sát vị trí của from_bytes[]
1. Nó nằm ở cuối bên phải của đối tượng bytes khi chúng ta tạo đối tượng bytes với byteorder 'lớn'. Mặt khác, nó nằm ở cuối bên trái của đối tượng bytes khi chúng ta tạo đối tượng bytes bằng cách sử dụng byteorder ‘little
‘
Bạn nên nhớ rằng thứ tự phụ được chỉ định trong phương thức from_bytes[]
phải giống với thứ tự phụ được chỉ định trong khi tạo đối tượng byte. Mặt khác, đối tượng int được tạo từ đối tượng bytes không tạo ra đầu ra mong muốn. Bạn có thể quan sát điều này trong ví dụ sau
sử dụng int. from_bytes[]
1
2
3
4
5
6
7
8
9
10
11
12
myInt = 123
myBytes = int. to_bytes[myInt, 5, 'big']
in["Đối tượng byte là. ", Bytes của tôi]
đầu ra = int. from_bytes[myBytes, ', signed=True]
in["Đầu ra số nguyên là. ", đầu ra]
myInt1 = 123
myBytes1 = int. to_byte[myInt1, 5, 'little']
in["Đối tượng byte là. ", myBytes1]
đầu ra1 = int. from_bytes[myBytes1, ', signed=True]
in["Đầu ra số nguyên là. ", đầu ra1]
đầu ra
đầu ra
1
2
3
4
5
6
Đối tượng byte object là. b'\x00\x00\x00\x00{'
Đầu ra số nguyên là. 528280977408
Đối tượng byte object là. b'{\x00\x00\x00\x00'
Đầu ra số nguyên là. 528280977408
Ở đây, bạn có thể quan sát thấy đầu ra hiển thị các giá trị rác khi chúng ta sử dụng các giá trị byteorder khác nhau tại thời điểm tạo đối tượng bytes và đối tượng int
đọc thêm
Chuyển đổi Bytearray thành Chuỗi trong Python
Đọc thêm →
Chuyển đổi Hex thành byte trong Python
Đọc thêm →
Làm cách nào để chuyển đổi byte thành số nguyên không dấu trong Python?
Để chuyển đổi byte thành int không dấu trong python, chúng ta có thể đặt tham số đã ký thành Sai hoặc để trống trong phương thức from_bytes[]
. Bạn có thể quan sát điều này trong ví dụ sau
sử dụng int. from_bytes[] có dấu = false
1
2
3
4
5
6
7
8
9
10
11
12
myInt = 123
myBytes = int. to_bytes[myInt, 5, 'big']
in["Đối tượng byte là. ", Bytes của tôi]
đầu ra = int. from_bytes[myBytes, ', signed=False]
in["Đầu ra số nguyên là. ", đầu ra]
myInt1 = 123
myBytes1 = int. to_byte[myInt1, 5, 'little']
in["Đối tượng byte là. ", myBytes1]
đầu ra1 = int. from_bytes[myBytes1, ', signed=False]
in["Đầu ra số nguyên là. ", đầu ra1]
đầu ra
đầu ra
1
2
3
4
5
6
Đối tượng byte object là. b'\x00\x00\x00\x00{'
Đầu ra số nguyên là. 123
Đối tượng byte object là. b'{\x00\x00\x00\x00'
Đầu ra số nguyên là. 123
Một lần nữa, bạn nên sử dụng thứ tự phụ chính xác trong phương thức from_bytes[]
để có thể tạo ra kết quả như mong đợi
Phần kết luận
Trong bài viết này, chúng tôi đã thảo luận về cách chúng tôi có thể chuyển đổi byte thành int trong python. Tôi hy vọng bạn thích đọc bài viết này. Hãy theo dõi để biết thêm các bài viết thông tin