Skip to content
Advertisement

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

  • hexadecimal x00xff (or decimal 0255 = binary 0000 00001111 1111) I’m looking to get 1 (Byte),
  • hexadecimal x100xffff (or decimal 25665535 = binary 0000 0001 0000 00001111 1111 1111 1111) would give me 2 (Bytes)

and so on.

Any clue for hexadecimal or decimal format as the input?

Advertisement

Answer

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
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement