Байты Python представляют собой последовательность целых чисел в диапазоне 0–255. Это неизменяемый тип данных последовательности, то есть их нельзя изменить после создания объекта bytes.

Содержание

С помощью метода to_bytes()

В Python метод to_bytes() принимает целочисленное значение в качестве первого входного аргумента, длину объекта выходных байтов в качестве второго входного аргумента и порядок байтов в качестве третьего входного аргумента.

Ниже приведен полный код Python для преобразования целых чисел в байты с использованием метода to_bytes().

int_number = 4578
converted_to_bytes = int_number.to_bytes(2, 'big')
print(converted_to_bytes)

Я использовал метод .to_bytes() для преобразования целого числа, указывающего количество байтов, которое вы хотите получить в результирующем байтовом объекте. Где «большой» указывает порядок байтов.

converted_to_bytes = int_number.to_bytes(2, 'big')

Выход:

b'\x11\xe2'

Обратитесь к снимку экрана ниже, чтобы увидеть выходные данные программы Python.

С помощью метода to_bytes()

С помощью модуля struct

Это еще один подход к преобразованию целых чисел в байты с использованием модуля struct в Python. Модуль struct в Python используется для упаковки и распаковки данных из C-подобных структур. Функция package() в Python особенно полезна для преобразования целого числа в байты.

Он обеспечивает большую гибкость при обработке двоичных данных. Это встроенный модуль, доступный в Python3.

Полная программа Python для преобразования целых чисел в байты с использованием модуля struct.

 import struct

int_num = 4192
int_converted_byte = struct.pack('>H', int_num)
print(int_converted_byte)

Функция Pack() в Python вызывает пакеты данных в объект байтов в соответствии с форматом, где H указывает порядок байтов, то есть самый значимый байт(т. е. байт высшего порядка), который идет первым.

int_converted_byte = struct.pack('>H', int_num)

Выход:

b'\x10`'

Вы можете увидеть выходные данные программы Python на снимке экрана ниже.

С использованием модуля struct

С помощью побитового оператора

В Python побитовые операторы используются для выполнения побитовых вычислений. Он преобразует целое число в двоичное, а затем операции выполняются побитно.

Вот полный код Python для преобразования целых чисел в байты с использованием побитового оператора Python.

integer_value = 2096
byte_value = bytes([(integer_value >> 8) & 0xFF, integer_value & 0xFF])
print(byte_value)

Здесь понимание списка используется со списком из двух элементов. Затем он извлечет старший байт integer_value и сдвинет биты вправо на 8 позиций. Теперь примените побитовую операцию И с 0xFF, которая маскирует все, кроме младших 8 бит.

byte_value = bytes([(integer_value >> 8) & 0xFF, integer_value & 0xFF])

Выход:

b'\x080'

Вы можете увидеть результат, представленный на скриншоте ниже.

С помощью побитового оператора

С использованием байтового массива и побитового сдвига

Другой метод — преобразовать целое число в байты с использованием байтового массива и побитового сдвига в Python. Этот метод повышает гибкость при создании последовательностей байтов, но может быть излишним для простых преобразований.

В Python эти операторы сдвигают биты числа влево или вправо, умножая или деля число на два.

Для этого я буду использовать исходный код Python.

int_number = 4684

byte_array = bytearray()
byte_array.append((int_number >> 8) & 0xFF)
byte_array.append(int_number & 0xFF)

bytes_object = bytes(byte_array)
print(bytes_object)

Выход:

b'\x12L'

На снимке экрана ниже показаны выходные данные программы Python для преобразования целого числа в байты с использованием байтового массива и побитового сдвига.

Байтовый массив и побитовый сдвиг

Понимание списка

В Python понимание списка обеспечивает более короткий синтаксис для создания списка на основе значения существующего списка.

Вот полный исходный код Python для преобразования целых чисел в байты с использованием понимания списка.

integer_value = 8128
int_to_byte_value = bytes([integer_value >> i & 0xff for i in(8,0)])
print(int_to_byte_value)

Выход:

b'\x1f\xc0'

На скриншоте ниже вы видите результат преобразования целых чисел в байты в Python.

С использованием понимания списка

Итоги

Я надеюсь, что эта статья окажется для вас полезной, поскольку в ней рассказывается, как преобразовать целые числа в байты в Python с использованием пяти различных методов, таких как метод to_bytes(), модуль структуры, побитовый оператор, массив байтов с побитовым сдвигом и понимание списка с их примерами.

Добавить комментарий