Python中int占几个字节
以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培训机构:开发教育。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!