【发布时间】:2021-07-17 01:42:58
【问题描述】:
我刚刚在 AndroidStudio 中玩了一下,发现了这个数字: 8198552921648689606
我的代码如下所示:
int x = 1;
for (int i = 0; i<64; i++)
{
x++;
x *= 10;
}
print(x);
由于某种原因,它卡在了这个奇怪的数字上。 我预计它会在整数线上跳来跳去,但对于 64 以上的所有数字,它都保持这样。
它只发生在数字 10 或 100 或 1000(或任何我认为的十倍数)作为一个因素时,它也发生在 Java 中。
卡住的数字根据位系统的类型和使用的数字而变化,但它一直卡住。
关于整数行似乎是一个奇怪的巧合,但我真的很想知道发生了什么。
更新: 似乎偶数因素会发生,但奇数因素不会。尽管如此,我仍然无法理解。
【问题讨论】:
标签: java android for-loop integer bit