1

可能重复:
如何确定 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

谢谢

4

2 回答 2

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
于 2012-12-28T23:55:16.383 回答
0

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

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

于 2012-12-28T23:44:00.060 回答