Python整数占用字节的异常现象(非4或8字节),sys.getsizeof(),sys.maxsize,sys.int_info
来源:互联网 发布:linux 存放.rpm的目录 编辑:程序博客网 时间:2024/05/16 09:18
前面在书上看到Python3有大整数小整数之分,小整数即小于sys.maxsize
(在Python2用sys.maxint
表示)的整数,大整数即大于sys.maxsize
的整数。
小整数用4或8个字节表示,32位Python用4个字节,64位Python用8个字节表示。
大整数每个数字用15bit或30bit表示,即2字节或4字节表示。大整数没有4或8个字节的总长度限制,理论上可以无限大。
我的机器装的32位Python,小整数最大值为sys.maxsize,值大致为32位二进制,也就是4个字节的值范围。但是,诡异的是用sys.getsizeof()来查看占用字节数的时候,结果让人很懵逼,说好的4呢,怎么是12……
import sysimport mathprint(sys.maxsize)#结果为2147483647print(math.log(sys.maxsize, 2))#结果大致为31.0print(sys.getsizeof(int()))#结果为12
通过在stackoverflow的一番研究,原来Python在整数中还加有其他附加信息,具体每个人机器上的值一样不一样,填天知道,还学会了一个词YMMV(Your Mileage May Vary),直译就是因人而异,说白了就是人品问题!
有兴趣的可以参考
https://stackoverflow.com/questions/10365624/sys-getsizeofint-returns-an-unreasonably-large-value#http://www.laurentluce.com/posts/python-integer-objects-implementation/
阅读全文
1 0
- Python整数占用字节的异常现象(非4或8字节),sys.getsizeof(),sys.maxsize,sys.int_info
- python sys.getsizeof(int())
- sys
- /sys
- sys
- sys
- python的sys模块
- Python的sys.arg[]
- Python的sys
- python的sys.argv
- python---sys
- python sys
- python sys.stdin,sys.stdout,sys.stderr
- Python - reload(sys) + sys.setdefaultencoding
- Python sys.argv的用法
- 【python】sys.argv[] 的用法
- Python sys.path的使用
- Python的sys.path妙用
- 【BZOJ 2433】[Noi2011]智能车比赛
- 笔记本拆机清灰,换硅脂,升级改造链接
- FTPrep, 93 Restore IP Addresses
- ES6——set、map数据结构
- Quartz入门
- Python整数占用字节的异常现象(非4或8字节),sys.getsizeof(),sys.maxsize,sys.int_info
- Calendar中的一些方法 设置闹钟相关
- idea 使用
- Mac Eclipse Failed to load JavaHL Library.
- 根据查询参数list动态拼接SQL
- 《坚持与自由》——读明朝那些事儿有感
- ubuntu wifi hard blocked解决方法
- iOS开发中Member Center的一些理解
- 一头扎进知识的海洋,差点没淹死