Goo*_*ozo 0 java int long-integer
简单的代码没问题
long x = Integer.MAX_VALUE;
System.out.println(x * 2 + "...." + Long.MAX_VALUE);
= 4294967294....9223372036854775807
Run Code Online (Sandbox Code Playgroud)
但这里发生了什么?为什么-2
System.out.println(2 * Integer.MAX_VALUE + "...." + Long.MAX_VALUE);
= -2....9223372036854775807
Run Code Online (Sandbox Code Playgroud)
为什么元素是149998,编译器不会将这些转换为long?
long elements = 2 * Integer.MAX_VALUE + 150000;
System.out.println(elements + "...." + Long.MAX_VALUE);
149998....9223372036854775807
Run Code Online (Sandbox Code Playgroud)
-谢谢
将变量从整数提升为长.
long elements = 2 * Integer.MAX_VALUE + 150000;
Run Code Online (Sandbox Code Playgroud)
应该
long elements = 2L * Integer.MAX_VALUE + 150000;
Run Code Online (Sandbox Code Playgroud)
对原始陈述的评价,
long elements = 2 * Integer.MAX_VALUE + 150000;
Run Code Online (Sandbox Code Playgroud)
相当于
long elements = (long)(2 * Integer.MAX_VALUE + 150000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |