gpt4 book ai didi

java - 当表达式中有另一个 long 值时,为什么我的整数文字没有被提升为 long 类型?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:40 25 4
gpt4 key购买 nike

代码:

public class Foo
{
public static void main(String[] args)
{
long i = 4294967296l;
System.out.println(i + 65536 * 65536);
System.out.println(i + 65536L * 65536);
}
}

输出:

4294967296
8589934592

看起来在第一个 System.out.println 语句中,65536 * 65536 被评估为 int 类型,结果它换行到 0

我想知道为什么在这个语句中,数字没有被提升为long。我认为 long 变量 i 在此语句中的存在足以将 65536 提升为 long。

最佳答案

乘法在加法之前计算(运算符优先),所以首先 65536 * 65536 被计算为 int 乘法(因为两个操作数都是 int 文字)并且结果被提升long 添加一个 long 和一个 int

关于java - 当表达式中有另一个 long 值时,为什么我的整数文字没有被提升为 long 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34128985/

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