How can I find out the number of Bytes a certain integer number takes up to store?
E.g. for
\x00
- \xff
(or decimal 0
- 255
= binary 0000 0000
- 1111 1111
) I'm looking to get 1 (Byte),\x100
- \xffff
(or decimal 256
- 65535
= binary 0000 0001 0000 0000
- 1111 1111 1111 1111
) would give me 2 (Bytes)and so on.
Any clue for hexadecimal or decimal format as the input?
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