我刚刚开始用c编程,我知道python的一些基本知识,所以当我在python中为变量设置一个非常大的int值时说'58944651132156484651'并打印该变量,一切都会好起来,但是当我对c进行相同操作时答案将是247 .....在搜索此内容后,我发现这是c中的最大可能值,我理解了所有内容,但是谁能告诉我,没有这个最大值,一切都可以正常工作吗?这个最大值会出现很多问题,例如我无法将我的电话号码设置为可变的,还有很多类似的事情,因此请帮助我解决这个问题。记住我是python用户,现在我正在学习c。
/*code in c*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num = 456465465456456465465456;
printf("%d \n", num);
return 0;
}
#code in python
num = 54454564564848431284132116483211
print(num)
#that's better than the c's big print :(
答案 0 :(得分:5)
要使Python支持无固定限制的整数,它必须包括许多管理数据的软件。由于没有固定大小,因此Python必须为其整数对象支持可变长度。这意味着它必须跟踪这些长度,必须为其分配和释放可变数量的内存,并且必须具有对它们执行复合算术运算的例程。这很慢并且相对昂贵。
C的主要目的是为了更直接地访问计算机。它提供了基本的操作,使程序员可以构建自己的更复杂的功能或将其操作限制在计算机的自然范围内。总的来说,用一个简单的处理器指令就可以对C中的两个数字进行加或乘运算,而对于相同的值,Python甚至可能需要数十个数字。
这意味着C中int
的最大值很大程度上取决于计算机处理器在其操作中提供的内容。您问什么是限制大小的“需求”:简单地说,int
的最大值是可以支持的最大值,而无需使用其他指令或资源来表示更大的值。
您还应该注意,C没有指定int
的最大值为2,147,483,647。 C被设计为灵活和可移植的,int
的最大值因C实现而异。至少是32,767。这些天常见2,147,483,647,但允许其他值。