Я не могу понять, как это сделать, так что это может быть не так просто. Я просмотрел этот пост, этот и многие другие, но я не могу получить тип ответа Я ищу. Большинство сообщений, которые я читал, используют struct.pack
или struct.pack_into
, но проблема в том, что я не знаю априори размер массива, который мне нужен, и я не хотел бы создавать его для временного хранения целочисленных значений. Поэтому я подумал, что вместо этого я мог бы использовать bytearray
, но я не знаю, как добавить к нему 4-байтовые целые числа.
>>> b = bytearray()
>>> for i in range(100):
... b.append(i)
...
>>> print(b)
bytearray(b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abc')
>>> print(list(b))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> import sys
>>> sys.getsizeof(b)
161
Таким образом, массив байтов не содержит 4-байтовых целых чисел (что мне и нужно). Значит, мне пришлось бы использовать какое-то заполнение нулями, чтобы получить 4-байтовые целые числа? Есть ли функция, которую я могу использовать для преобразования целого числа, переданного для добавления к типу целого числа, которое я хочу?