我想区分Python中的32位和64位整数。在C中,我们可以使用int_64
和int_32
声明变量,这非常简单。但是在Python中我们如何区分32位整数和64位整数?
答案 0 :(得分:6)
没有必要。解释器处理幕后的分配,根据需要有效地从一种类型推广到另一种类型,而无需你做任何明确的事情。
答案 1 :(得分:4)
基本上,你没有。没有理由。如果要处理已知位大小的类型,请查看numpy
数据类型。
如果您想将数据放入指定的格式,请查看struct模块。
答案 2 :(得分:4)
其他答案中提到的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'
documentation表示格式化字符串。
答案 3 :(得分:0)
ipython解释器会话的以下片段指示了一种测试整数类型的方法。请注意,在我的系统上,int
是64位数据类型,而long
是多字类型。
In [190]: isinstance(1,int)
Out[190]: True
In [191]: isinstance(1,long)
Out[191]: False
In [192]: isinstance(1L,long)
Out[192]: True
另请参阅an answer有关sys.getsizeof
的信息。此函数并不完全相关,因为包含了一些额外的开销字节。例如:
In [194]: import sys
In [195]: sys.getsizeof(1)
Out[195]: 24
In [196]: sys.getsizeof(1L)
Out[196]: 28