【问题标题】:storage limit for the arguments/variables in pythonpython中参数/变量的存储限制
【发布时间】:2013-01-19 18:49:28
【问题描述】:

对于下面的程序

def sum_naturals(n):
    total, k = 0, 1
    while k <= n:
        total, k = total + k, k + 1
    return total

sum_naturals(5000000000000000000000)

从过去 20 分钟开始,我正在等待处理器 intel t1400 1.83 ghz 的输出。

我的问题是,

python如何处理这么大的数据,因为我的处理器只有32位寄存器? C 程序会很早就报错?

假的

【问题讨论】:

    标签: c assembly python-3.x


    【解决方案1】:

    Python 的 int 类型支持任意大的数字。在内部,有两种表示形式:单个机器 int 用于小数字,以及 int 数组用于较大数字(以及单独存储的符号)。该数组表示大基数中的数字位数。

    【讨论】:

    • 内部区别(实际上并不是真正的内部区别,因为两者是不同的 Python 类型并且显示方式不同)在 3.x 中消失了,其中所有整数都是任意精度。
    • 你好 delnan 好吧,python 不需要输入变量作为语言,我认为你在谈论 python 解释器的内部结构,其中整数存储为数组以处理巨大的值。但是python中的整数值是否有任何限制,例如在c语言32位中它是-2^15-1到2^15-1。假
    • 对于您的声明:“单个机器 int 用于小数字,而 int 数组用于较大数字(以及单独存储的符号)。”你是说整数在python中不是以2的补码形式存储的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多