如何查找变量中的字节数?

时间:2012-12-28 23:33:08

标签: python

  

可能重复:
  How do I determine the size of an object in Python?

如果我做的话在C中

USHORT x;
ULONG y;
ULONGLONG yy;

printf("%d %d %d\n", sizeof(x), sizeof(y), sizeof(yy))

输出:2 4 8

如果我要

,我怎样才能在Python中得到它
valByte = 0x16
valWord = 0x1234
valDWord = 0x12345678
val64Word = 0x1234567887654321

我期望的输出应该是1,2,4,8

感谢

2 个答案:

答案 0 :(得分:5)

在Python3中有bit_length方法:

>>> import math

>>> math.ceil(0x16.bit_length()/8)
1
>>> math.ceil(0x1234.bit_length()/8)
2
>>> math.ceil(0x12345678.bit_length()/8)
4
>>> math.ceil(0x1234567887654321.bit_length()/8)
8

在Python2.7中,long整数也有bit_length方法:

>>> (10**20).bit_length()
67

>>> x = 123
>>> long(x).bit_length()
7

答案 1 :(得分:0)

您可以使用sys.getsizeof,但结果可能很烦人,因为整数可以是最小值。

例如,在我的64位PC中,所有变量的大小都是24字节。