В Python 3.2 теперь есть функция int.from_bytes() для преобразования объекта bytes в целое число. Чтобы создать байты в Python, используйте метод bytes(). Bytes() — это встроенный метод, который возвращает неизменяемый объект bytes, инициализированный с заданным размером и данными.
Байты Python в int
Чтобы преобразовать bytes в int в Python, используйте метод int.from_bytes(). Значение byte может быть заменено значением int с помощью функции int.from_bytes().
Функция int.from_bytes() принимает bytes, byteorder, signed, * в качестве параметров и возвращает целое число, представленное заданным массивом байтов.
Синтаксис
|
1 |
int.from_bytes(bytes, byteorder, *, signed=False) |
Аргументы
- bytes: это байтовый объект.
- byteorder: определяет порядок представления целочисленного значения. Порядок байтов может иметь значения как «little», где старший бит хранится в конце «big», где старший бит хранится в начале, а младший бит — в конце.
- signed: имеет значение False по умолчанию. Указывает, следует ли представлять дополнение числа до 2.
Возвращаемое значение
Возвращает целое число, представленное заданным массивом байтов.
Пример
|
1 2 3 4 5 6 7 8 |
# 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) |
Вывод:
|
1 |
8473 |
Вы можете видеть, что мы передали byteorder = big. Аргумент byteorder определяет порядок байтов, используемый для представления целого числа. Если порядок байтов «little», старший байт находится в начале массива байтов.

Передача byteorder = “little”
Если порядок байтов «little», старший байт находится в конце массива байтов.
|
1 2 3 4 5 6 7 8 |
# 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) |
Вывод:
|
1 |
8465 |
Передача signed=True
Метод int.from_bytes() также принимает аргумент signed. По умолчанию его значение равно False.
Возьмем еще один пример, передадим signed = True и посмотрим на результат.
|
1 2 3 4 5 6 7 8 |
# 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) |
Вывод:
|
1 |
-1024 |
