• 技术文章 >常见问题 >Python常见问题

    Python中int占几个字节

    月亮邮递员月亮邮递员2020-03-25 14:56:39原创6339

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

    更多技术请关注Python视频教程

    专题推荐:python int 字节
    上一篇:Python中的下横线是什么意思 下一篇:Python怎么运行shell脚本

    相关文章推荐

    • Python中怎么调用摄像头• Python中有substr函数吗• Python中的下横线是什么意思

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网