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