Hướng dẫn python convert byte to unsigned int - python chuyển đổi byte thành int không dấu

Tôi đang đọc trong một mảng/danh sách byte từ ổ cắm. Tôi muốn Python coi byte đầu tiên là "số nguyên 8 bit không dấu". Làm thế nào có thể có được giá trị số nguyên của nó như một số nguyên 8 bit không dấu?

Hướng dẫn python convert byte to unsigned int - python chuyển đổi byte thành int không dấu

Garrett

3.7772 Huy hiệu vàng36 Huy hiệu bạc55 Huy hiệu Đồng2 gold badges36 silver badges55 bronze badges

Hỏi ngày 11 tháng 12 năm 2009 lúc 11:38Dec 11, 2009 at 11:38

1

Sử dụng mô -đun cấu trúc.

import struct
value = struct.unpack('B', data[0])[0]

Lưu ý rằng giải nén luôn trả về một tuple, ngay cả khi bạn chỉ giải nén một mục.

Ngoài ra, hãy xem câu hỏi này.

Đã trả lời ngày 11 tháng 12 năm 2009 lúc 11:49Dec 11, 2009 at 11:49

codeapecodeapecodeape

95,7K24 Huy hiệu vàng151 Huy hiệu bạc181 Huy hiệu đồng24 gold badges151 silver badges181 bronze badges

3

Byte/bytearray là một chuỗi các số nguyên. Nếu bạn chỉ truy cập một phần tử theo chỉ mục của nó, bạn sẽ có một số nguyên:

>>> b'abc'
b'abc'
>>> _[0]
97

Theo định nghĩa của chúng, byte và bytearrays chứa các số nguyên trong range(0, 256). Vì vậy, họ là "số nguyên 8 bit không dấu".

Đã trả lời ngày 11 tháng 12 năm 2009 lúc 11:49Dec 11, 2009 at 11:49

codeapecodeapeSilentGhost

95,7K24 Huy hiệu vàng151 Huy hiệu bạc181 Huy hiệu đồng65 gold badges302 silver badges291 bronze badges

3

Byte/bytearray là một chuỗi các số nguyên. Nếu bạn chỉ truy cập một phần tử theo chỉ mục của nó, bạn sẽ có một số nguyên:

value = ord(data[0])

>>> b'abc'
b'abc'
>>> _[0]
97

Theo định nghĩa của chúng, byte và bytearrays chứa các số nguyên trong range(0, 256). Vì vậy, họ là "số nguyên 8 bit không dấu".Dec 11, 2009 at 12:19

Hướng dẫn python convert byte to unsigned int - python chuyển đổi byte thành int không dấu

Cải thiện bài viết

Lưu bài viết

Đối tượng byte có thể được chuyển đổi thành giá trị số nguyên dễ dàng bằng Python. Python cung cấp cho chúng tôi nhiều phương thức được xây dựng khác nhau như từ_bytes () cũng như các lớp để thực hiện sự xen kẽ này.

Phương thức int.from_bytes ()

Giá trị byte có thể được thay thế với giá trị INT bằng cách sử dụng phương thức int.from_bytes (). Phương pháp này yêu cầu ít nhất Python 3.2 và có cú pháp sau: & nbsp;

Cú pháp: int.from_bytes (byte, byteorder, *, đã ký = false)int.from_bytes(bytes, byteorder, *, signed=False)

Parameters:

  • Byte - đối tượng byte & nbsp; A byte object 
  • ByteOrder - Xác định thứ tự biểu diễn của giá trị số nguyên. Byteorder có thể có các giá trị như là một trong những điều đáng kể nhất được lưu trữ ở cuối và ít nhất là ở đầu, hoặc lớn, nơi MSB được lưu trữ khi bắt đầu và LSB ở cuối. Thứ tự byte lớn tính toán giá trị của một số nguyên trong cơ sở 256. & nbsp; Determines the order of representation of the integer value. byteorder can have values as either “little” where most significant bit is stored at the end and least at the beginning, or big, where MSB is stored at start and LSB at the end. Big byte order calculates the value of an integer in base 256. 
  • Đã ký - Giá trị mặc định - Sai. Cho biết có thể đại diện cho 2 bổ sung của một số. & NBSP hay không; Default value – False . Indicates whether to represent 2’s complement of a number. 

Returns - một int tương đương với byte đã cho an int equivalent to the given byte

Các đoạn sau đây cho thấy việc chuyển đổi byte sang int object. & Nbsp;

Ví dụ 1:

Python3

byte_val = b

>>> b'abc'
b'abc'
>>> _[0]
97
0

>>> b'abc'
b'abc'
>>> _[0]
97
1=
>>> b'abc'
b'abc'
>>> _[0]
97
3
>>> b'abc'
b'abc'
>>> _[0]
97
4
>>> b'abc'
b'abc'
>>> _[0]
97
5
>>> b'abc'
b'abc'
>>> _[0]
97
6

>>> b'abc'
b'abc'
>>> _[0]
97
7
>>> b'abc'
b'abc'
>>> _[0]
97
8

Output:

1

Ví dụ 2:

Python3

byte_val = b

value = ord(data[0])
2

>>> b'abc'
b'abc'
>>> _[0]
97
1=
>>> b'abc'
b'abc'
>>> _[0]
97
3
>>> b'abc'
b'abc'
>>> _[0]
97
4
value = ord(data[0])
7
>>> b'abc'
b'abc'
>>> _[0]
97
6

>>> b'abc'
b'abc'
>>> _[0]
97
7
>>> b'abc'
b'abc'
>>> _[0]
97
8

Output:

4096

Ví dụ 3:

Python3

byte_val = b

1
4

>>> b'abc'
b'abc'
>>> _[0]
97
1=
>>> b'abc'
b'abc'
>>> _[0]
97
3
>>> b'abc'
b'abc'
>>> _[0]
97
4
>>> b'abc'
b'abc'
>>> _[0]
97
5
4096
0_______

>>> b'abc'
b'abc'
>>> _[0]
97
7
>>> b'abc'
b'abc'
>>> _[0]
97
8

Output:

-1024

Bytearray trong Python là gì?

Hàm python bytearray () hàm bytearray () trả về một đối tượng bytearray.Nó có thể chuyển đổi các đối tượng thành các đối tượng bytearray hoặc tạo đối tượng bytearray trống của kích thước được chỉ định.returns a bytearray object. It can convert objects into bytearray objects, or create empty bytearray object of the specified size.

Int from_bytes là gì?

int.from_bytes (byte, byteorder, *, đã ký = false) trả về số nguyên được biểu thị bằng mảng byte đã cho.Returns the integer represented by the given array of bytes.

Byte được đại diện như thế nào trong Python?

Trong Python, chuỗi byte được biểu thị bằng B, theo sau là đại diện ASCII của chuỗi byte.Một chuỗi byte có thể được giải mã trở lại thành một chuỗi ký tự, nếu bạn biết mã hóa được sử dụng để mã hóa nó.a b , followed by the byte string's ASCII representation. A byte string can be decoded back into a character string, if you know the encoding that was used to encode it.