【发布时间】:2011-07-13 03:57:44
【问题描述】:
据我所知,整数的范围是 32,768 到 32,767。 长整数的范围是 2,147,483,648 到 2,147,483,647。 我仔细检查了维基百科以确保。
现在的问题:
int a=2147483647;
printf("a: %d\n", a);
为什么会这样?如果我将 1 添加到 2147483647,那么它会打印垃圾,如果变量是长整数,则可以预期。但是为什么它首先允许我将一个长整数分配给一个整数呢?
【问题讨论】:
-
您查看了哪个维基百科条目? 32 位机器上的整数应该在 -2b 到 +2b 的范围内。
-
en.wikipedia.org/wiki/Integer_%28computer_science%29 虽然我可能读错了。我的想法是,对于 int、long int、float 的大小应该有一个标准。但这不是意味着一个程序在不同的处理器上表现得非常不同吗?作为程序员,有人会如何处理这个问题?
标签: c integer range variable-assignment long-integer