Int sang mảng byte Python

Trăn 3. 2 hiện có chức năng gọi là int. from_bytes[] để chuyển đổi byte thành số nguyên. Để tạo byte trong Python, hãy sử dụng phương thức bytes[]. bytes[] là một phương thức tích hợp trả về đối tượng byte bất biến được khởi tạo với kích thước và dữ liệu đã cho

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

Câu hỏi chính là "chuỗi byte thích hợp" cho một số nguyên là gì trong ngữ cảnh chức năng thư viện của bạn

Tuy nhiên, ví dụ của bạn làm như sau

Ví dụ 1____7_______

Ở đây

> bytes[5]
b'\x00\x00\x00\x00\x00'
> bytes[10]
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
3 là một đối tượng byte có độ dài 1 chứa byte đại diện cho ký tự ASCII cho chữ số 1. Giá trị của nó là 49 [bạn có thể thấy giá trị này bằng cách nhập
> bytes[5]
b'\x00\x00\x00\x00\x00'
> bytes[10]
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
6 vào trình bao Python của mình]

Ví dụ 2______10_______

Ở đây bạn đang tạo một đối tượng byte mới có độ dài 1, Python đó sẽ điền vào giá trị 0. Xem

> bytes[5]
b'\x00\x00\x00\x00\x00'
> bytes[10]
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
7 để biết tại sao điều này lại xảy ra

bytes[iterable_of_ints] -> bytes
bytes[string, encoding[, errors]] -> bytes
bytes[bytes_or_buffer] -> immutable copy of bytes_or_buffer
bytes[int] -> bytes object of size given by the parameter initialized with null bytes
bytes[] -> empty bytes object

Construct an immutable array of bytes from:
  - an iterable yielding integers in range[256]
  - a text string encoded using the specified encoding
  - any object implementing the buffer API.
  - an integer
Ví dụ 3_______8_______0

Ở đây, bạn đang chuyển đổi một số nguyên [trong đó có thể cần nhiều hơn một byte để lưu trữ giá trị] thành một đối tượng byte chứa chính xác các byte đó. Tuy nhiên, vì giá trị số nguyên của bạn rất nhỏ, nên nó vừa với một byte và sau đó thứ tự của các byte trở nên không liên quan

Giải pháp?

Nếu tôi hiểu bạn một cách chính xác thì đầu ra của ví dụ 1, là đầu ra chính xác, điều này cho thấy rằng thứ bạn cần là một đối tượng

> bytes[5]
b'\x00\x00\x00\x00\x00'
> bytes[10]
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
8 chứa các chữ số ASCII của biểu diễn thập phân của số nguyên. Để có được điều này, hãy làm như sau

Làm cách nào để chuyển đổi mảng thành byte trong Python?

phương thức bytearray[] trả về một đối tượng bytearray [i. e. mảng byte] là chuỗi số nguyên có thể thay đổi [có thể sửa đổi] trong phạm vi 0

Có bao nhiêu byte là một int?

Các kiểu int và unsigned int có kích thước bốn byte .

Chủ Đề