Python中int占几个字节

2023-12-13 13:14:28网络知识匿名

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

struct_longobject{

PyObject_VAR_HEAD

digitob_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个字节。

以上内容为大家介绍了Python中int占几个字节,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:瀚银百科。

发表评论: