我想区分 Python 中的 32 位和 64 位整数。在 C 中,这很容易,因为我们可以使用int_64
and声明变量int_32
。但是在 Python 中,我们如何区分 32 位整数和 64 位整数呢?
问问题
5534 次
4 回答
7
没有必要。解释器在幕后处理分配,根据需要有效地从一种类型升级到另一种类型,而无需您做任何明确的事情。
于 2012-12-29T07:20:23.097 回答
5
基本上,你没有。没有理由这样做。如果要处理已知位大小的类型,请查看numpy
数据类型。
如果要将数据放入指定的格式,请查看struct模块。
于 2012-12-29T07:21:18.213 回答
5
struct
其他答案中提到的模块是您需要的。
一个例子来说明清楚。
import struct
struct.pack('qii', # Format string here.
100, # Your 64-bit integer
50, # Your first 32-bit integer
25) # Your second 32-bit integer
# This will return the following:
'd\x00\x00\x00\x00\x00\x00\x002\x00\x00\x00\x19\x00\x00\x00'
于 2012-12-29T11:55:52.467 回答
1
以下来自 ipython 解释器会话的片段指示了一种测试整数类型的方法。注意,在我的系统上,anint
是 64 位数据类型,along
是多字类型。
In [190]: isinstance(1,int)
Out[190]: True
In [191]: isinstance(1,long)
Out[191]: False
In [192]: isinstance(1L,long)
Out[192]: True
另请参阅有关sys.getsizeof
. 这个函数并不完全相关,因为包括了一些额外的开销字节。例如:
In [194]: import sys
In [195]: sys.getsizeof(1)
Out[195]: 24
In [196]: sys.getsizeof(1L)
Out[196]: 28
于 2012-12-29T08:08:05.010 回答