获取Python中整数所需的字节大小
问题描述
如何找出某个整数占用的存储字节数?
How can I find out the number of Bytes a certain integer number takes up to store?
例如对于
- 十六进制
x00
-xff
(或十进制0
-255
= 二进制0000 0000
-1111 1111
) 我希望得到 1(字节), - 十六进制
x100
-xffff
(或十进制256
-65535
= 二进制0000 00010000 0000
-1111 1111 1111 1111
) 会给我 2(字节)
- 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)
等等.
输入十六进制或十进制格式的任何线索?
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
相关文章