3

我想区分 Python 中的 32 位和 64 位整数。在 C 中,这很容易,因为我们可以使用int_64and声明变量int_32。但是在 Python 中,我们如何区分 32 位整数和 64 位整数呢?

4

4 回答 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 回答