pythonintegernumbersbytesize

Get size in Bytes needed for an integer in Python


How can I find out the number of Bytes a certain integer number takes up to store?

E.g. for

and so on.

Any clue for hexadecimal or decimal format as the input?


Solution

  • You can use simple math:

    >>> from math import log
    >>> def bytes_needed(n):
    ...     if n == 0:
    ...         return 1
    ...     return int(log(n, 256)) + 1
    ...
    >>> bytes_needed(0x01)
    1
    >>> bytes_needed(0x100)
    2
    >>> bytes_needed(0x10000)
    3