无限的整数精度

时间:2016-08-24 14:53:11

标签: c biginteger

来自Python Numeric Types

  

整数具有无限的精确度。

这个测试

#include <stdio.h>

int main(void) {
    printf("%zu bytes", sizeof(long long));
    return 0;
}

在Linux下给我8 bytes或64位。

如何在cpython中实现(这在评论部分已经回答了)?

当实现中的整数超过long long时会发生什么?

8字节前和8字节后整数之间的算术速度差异有多大?

1 个答案:

答案 0 :(得分:-1)

  

如果我在Python中有更大的数字(不是8个字节)怎么办?

Python将适应并始终存储正确的数字,无需近似值。即使有非常大的INTEGER(但其他类型也不是这样)

  

它是如何存储在系统中的?像一些较小的整数?

那个python的实现。你可以在这里的源代码中找到它:svn.python.org/projects/python/trunk/Objects/longobject.c(感谢@samgak)

  

这个号码上的算术大大减慢了吗?

与其他语言一样,当数字在32位系统上大于.e.g 2 ^ 32时,算术会变慢。实施依赖多少。

  

当遇到这样的号码时,Python会做什么?

巨大的整数以不同的方式存储,所有算术都适合。

  

Python 2&amp; 2中​​是否存在任何差异? 3行为除了在Python 2中存储多长并将L附加到字符串表示外?

Python 2和3应具有相同的高级行为。