对我的 int 和 long 代码差异的问题
Question to my code difference in int and long
嘿哟
当我学习新的基础知识时,我发现 int 的限制为 2^32 -1
所以我想知道我是否可以使用 unsigned int 或 long
明显地增加它
我尝试了以下方法
class test {
public static void main(String[] args) {
int i;
int a=0;
for (i=1; i>0; i++) {
a++;
}
System.out.println("Done, a=" +a);
}
}
我注意到了
更改 long a=0 不会更改输出,但为什么呢?
将 i 更改为 long 确实会更改输出
在我的理解中,i 的值仍然为 0 那么为什么它会达到极限?
有没有办法改进我找到极限的方法?
如果 a
是我们的 long,我们的程序将在达到 long
的 MAXVALUE 之前停止循环。 因此 a
的值将是 2147483647。
class Test {
public static void main(String[] args) {
int i;
long a = 0;
for(i = 1; i > 0; i++) {
// This will stop incrementing when we reach the MAXVALUE
// of an int (i), which is 2147483647
}
System.out.println(a);
}
}
如果 i
是我们的 long,我们的程序将尝试 for-loop(递增)after a
(整数)的 MAXVALUE 是已达到 - 因此我们的程序将挂起并且不会打印任何内容。
class Test {
public static void main(String[] args) {
long i;
int a = 0;
for(i = 1; i > 0; i++) {
// This will try to increment **a** beyond the max
// value of an int
}
System.out.println(a);
}
}
嘿哟 当我学习新的基础知识时,我发现 int 的限制为 2^32 -1 所以我想知道我是否可以使用 unsigned int 或 long
明显地增加它我尝试了以下方法
class test {
public static void main(String[] args) {
int i;
int a=0;
for (i=1; i>0; i++) {
a++;
}
System.out.println("Done, a=" +a);
}
}
我注意到了 更改 long a=0 不会更改输出,但为什么呢?
将 i 更改为 long 确实会更改输出
在我的理解中,i 的值仍然为 0 那么为什么它会达到极限?
有没有办法改进我找到极限的方法?
如果 a
是我们的 long,我们的程序将在达到 long
的 MAXVALUE 之前停止循环。 因此 a
的值将是 2147483647。
class Test {
public static void main(String[] args) {
int i;
long a = 0;
for(i = 1; i > 0; i++) {
// This will stop incrementing when we reach the MAXVALUE
// of an int (i), which is 2147483647
}
System.out.println(a);
}
}
如果 i
是我们的 long,我们的程序将尝试 for-loop(递增)after a
(整数)的 MAXVALUE 是已达到 - 因此我们的程序将挂起并且不会打印任何内容。
class Test {
public static void main(String[] args) {
long i;
int a = 0;
for(i = 1; i > 0; i++) {
// This will try to increment **a** beyond the max
// value of an int
}
System.out.println(a);
}
}