use*_*840 4 java int type-conversion multiplication long-integer
private static final int FIRST = 8;
private static final int SECOND = (4 * 1024 * 1024)/8;
private static final int THIRD = (4 * 1024 * 1024);
private static final long RESULT = FIRST *SECOND * THIRD;
Run Code Online (Sandbox Code Playgroud)
为什么3的产品出现0?
为什么3的产品出现0?
你的乘法是在int算术中完成的,并且它是溢出的,结果为0.你基本上做了2 24*2 24,即2 48 - 并且结果的底部32位都是0.你指定的事实的结果的操作的一个long不改变用于对类型进行操作.
要使用64位整数运算执行算术,只需将操作数更改为long:
private static final long RESULT = (long) FIRST * SECOND * THIRD;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2601 次 |
| 最近记录: |