python3的int类型是几位的?

Python012

python3的int类型是几位的?,第1张

python3中的int类型是动态长度的,是长整型,理论支持无限大的数字。用sys.getsizeof()方法可以看int占了几位。例如:

sys.getsizeof(0)=24

sys.getsizeof(1)=28

所以,0占了24个字节,其它数字一般占用28个字节。以上结果是在64位操作系统上进行测试的结果。

扩展资料:

int在python里是一个类,是不可变数据类型中的一种,一些性质和字符串是一样的,是整型。Python int数字类型:整型int、长整型、布尔型bool、浮点数float、复数complex。

整型int的创建:创建一个新整型变量和给变量赋值是相同的过程。

整型的特点:既然是整型自然赋值时候的数据要是整数才行,整数简单理解为(正整数和负整数)。

以python3版本为例说明, int 类型在python中是动态长度的。因为python3中int类型是长整型,理论支持大的数字,但它的结构其实也很简单, 在 longintepr.h 中定义:

struct _longobject {

PyObject_VAR_HEAD

digit ob_digit[1]

}

这结构是什么意思呢,重点在于 ob_digit 它是一个数组指针。digit 可认为是 int的别名。python的整型存储机制是这样的。比方要表示一个很大的数:123456789 。而每个元素只能表示3位十进制数(为理解打的比方)。那么python就会这样存储:

ob_digit[0] = 789

ob_digit[1] = 456

ob_digit[2] = 123

低位存于低索引下。python中整型结构中的数组,每个元素存储 15 位的二进制数(不同位数操作系统有差异32位系统存15位,64位系统是30位)。

因此,sys.getsizeof(0) 数组元素为0。此时占用24字节(PyObject_VAR_HEAD 的大小)。 sys.getsizeof(456) 需使用一个元素,因此多了4个字节。