十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
C语言中int的取值范围为:-2147483648 ~ 2147483647。超过了这个范围进行赋值,C源代码是无法通过编译的。
发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及人造雾等,在网站建设、成都营销网站建设、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。
下面给出简单的测试代码:
# include stdio.h
int main(void)
{
int i = 100000000000000000000000000000000000000000000;
printf("%d\n", i);
return 0;
}
可以看到编译器提示这个定义类型的赋值太大了,导致无法编译成功。
扩展资料
C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同。在32/64位系统中都是32位,范围为-2147483648~+2147483647,无符号情况下表示为0~4294967295。
原因:总位数位32位,符号位占用1位,且每一位只能表示两种状态。int数值位最大只允许31位 = 32 - 符号位 ,所以说:2的31次方 = 2147483648得出了int函数的最大取值范围。
参考资料
百度百科_int函数
如果unsigned long(最大4294967295)都装不下只能用超长数组比如int a[100];就能处理一百位的数,但是要自己重新设计专用的四则运算函数比如void plus(int *a,int *b,int *c);什么的,挺麻烦的,估计网上有成套的,百度一下吧。
int是用两个字节表示的,范围是-32768到+32767,超过这个范围的就不能表示。
如果超过int的表示范围,可以先通过强制类型转换符()将变量类型转换为long int类型,再给对应的变量进行赋值。
不过,强制类型转换的过程是不可逆的。