Получить размер в байтах, необходимый для целого числа в 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
Получить размер в байтах, необходимый для целого числа в Python
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.