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

Если вы не имеете дело с pythonic array.array или numpy.array - размер всегда имеет integers накладные расходы на объект. И pythonic поскольку Python имеет дело integer с BigInts естественным образом, это size действительно очень сложно python сказать ...

>>> i = 5
>>> import sys
>>> sys.getsizeof(i)
24

Итак, на 64-битной numbers платформе требуется 24 байта pythonic для хранения того, что может integers быть сохранено в 3-х битном integers формате.

Однако, если да,

>>> s = '\x05'
>>> sys.getsizeof(s)
38

Так number что нет, не совсем - у вас python-interpreter есть накладные расходы на number память, связанные с определением int object, а не на необработанное python-shell хранилище ...

Если вы затем python-shell возьмете:

>>> a = array.array('i', [3])
>>> a
array('i', [3])
>>> sys.getsizeof(a)
60L
>>> a = array.array('i', [3, 4, 5])
>>> sys.getsizeof(a)
68L

Тогда вы получите integers то, что называется нормальными byte границами байтов и т. д. и python-interpreter т. д. и т. д.

Если вам просто int нужно то, что "чисто" нужно integers сохранить - минус накладные number расходы на объект, то с 2. (6 number | 7) вы можете использовать integers some_int.bit_length() (в противном случае просто pythonista сдвиньте его, как показано byte в других ответах), а затем size работайте оттуда

python

integer

numbers

byte

size

2022-11-04T22:04:15+00:00