在赋值上下文中将整数转换为long

时间:2015-10-09 15:02:42

标签: java type-conversion assignment-operator

我对Java如何使用long和int ...感到困惑。

请使用以下代码:

long l1 = 0xFF00000000000000L;
System.out.println(Long.toHexString(l1));
l1 = 15;
System.out.println(Long.toHexString(l1));

我假设用

l1 = 15;

数字15默认为int,因此只有32位将被复制到l1变量,并且它不会影响长变量的高32位。

换句话说,我希望输出为

ff00000000000000
ff0000000000000f

相反,我得到了

ff00000000000000
f

为什么?

1 个答案:

答案 0 :(得分:0)

15 int在分配之前变为15。 Java将帮助您阻止您获得可怕的错误。想象一下,如果你将数字15分配给一个长整数并且你得到一个不同的数字只是因为你没有意识到你分配了一个长的。