gpt4 book ai didi

int 和 longs 之间的 java 乘法给出 0

转载 作者:搜寻专家 更新时间:2023-11-01 01:43:51 26 4
gpt4 key购买 nike

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;

为什么3的乘积是0?

最佳答案

Why is the product of the 3 coming out to be 0?

你的乘法是在 int 算术中完成的,它溢出了,结果为 0。你基本上是在做 224 * 224,即 248 - 结果的底部 32 位全部为 0。您将操作的 result 分配给 long 不会更改用于执行操作的类型。

要使用 64 位整数运算执行运算,只需将操作数更改为 long:

private static final long RESULT  = (long) FIRST * SECOND * THIRD;

关于int 和 longs 之间的 java 乘法给出 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18374406/

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