我希望在Python中区分32位和64位整数。在C语言中,我们可以使用int_64
和int_32
声明变量,非常容易。但是在Python中,我们如何区分32位整数和64位整数呢?
不需要。解释器会在幕后处理分配,根据需要有效地将一种类型升级为另一种类型,无需您进行任何显式操作。
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'
基本上不需要这么做。没有理由这么做。如果你想处理已知位数的数据类型,请查看numpy
数据类型。
如果你想将数据放入指定的格式中,请查看struct模块。
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
int
可以是32位或64位,而long
则是任意长度的。你可以确定一个数字是否适合32位或64位,并尝试将一个数字打包成适当大小的二进制格式,但那是一个完全不同的问题。 - Chris Morgan