How can I find out the number of Bytes a certain integer number takes up to store?
E.g. for
- hexadecimal
x00
–xff
(or decimal0
–255
= binary0000 0000
–1111 1111
) I’m looking to get 1 (Byte), - hexadecimal
x100
–xffff
(or decimal256
–65535
= binary0000 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?
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