gpt4 book ai didi

java - Java 中 int 的范围错误

转载 作者:行者123 更新时间:2023-12-01 11:56:35 24 4
gpt4 key购买 nike

对于以下值

long Count = 2151685171
int CurrentPosition = 849
int employeesLeft = 1276

下面的代码抛出一个indexOutOfBound错误:

int EmployeeToBeEliminated = (int)(count+currentPosition-1)%employeesLeft;

如果,这样写

count = (count+currentPosition-1)%employeesLeft;
int EmployeeToBeEliminated = (int)count;

没有抛出任何错误。但在第一种情况下,取模后的值会减少到 01276 的范围,因此应该很容易将其转换为 int >。那么为什么它会抛出错误呢?

最佳答案

count 是一个 long,其值超出 int 范围。

强制转换应用于紧邻其右侧的操作数(在本例中为括号)。您可以想象 Actor 阵容被括号括起来,如下所示:

( (int)(count+currentPosition-1) ) %employeesLeft

(count+currentPosition-1) 的结果转换为 int 会导致溢出。

你想要的是:

(int)( (count+currentPosition-1)%employeesLeft )

关于java - Java 中 int 的范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28405426/

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