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 に答える