gpt4 book ai didi

java - 为什么我可以给一个太大的int赋值?Java如何处理它?

转载 作者:行者123 更新时间:2023-12-01 23:03:37 26 4
gpt4 key购买 nike

通常,当将一个数字分配给大于 2,147,483,647 的 int 时,代码将无法编译。但在下面的代码片段中,结果大于(2^31)-1,并且仍然可以打印。我知道“正确”的结果是通过让 result 很长 来获得的,但是为什么这仍然打印一些东西以及幕后发生了什么?提前致谢。

public class intAssigning
{
static int n = 500000;
static int i;
static int result;
//static long result;
static boolean [] array = new boolean [n];

public static void main(String[] args)
{
for (i = 0; i<n; i++)
{
array[i] = true;
}

for (i=2; i<n; i++)
{
if (array[i])
{
result+=i;
}
}
System.out.println(result);
//result with long: 124999750000
//result with int: 445698416
}
}

最佳答案

如果您尝试分配一个比 int 的最大大小更长的常量,您将面临编译器错误,并且如果您尝试在运行时使用变量或某些算术来执行此操作编译器无法检测到超出的操作,就会溢出。

例如:

int i = Integer.MAX_VALUE;
i = i+1;
System.out.println(i);

输出:-2147483648

关于java - 为什么我可以给一个太大的int赋值?Java如何处理它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23152167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com