想知道自我添加会有多快,我在Java中写了一个快速的小循环来看:
int count = 1;
while(true){
System.out.println(count);
count += count;
}
Run Code Online (Sandbox Code Playgroud)
输出是意料之外的:
0
0
0
0
0
...
Run Code Online (Sandbox Code Playgroud)
为什么是这样?count被初始化为1,因此内部添加应该是count + count或1 + 1.为什么结果为0?
Ram*_*ava 13
您发布的输出是输出的尾随行,而不是前30-31行.它变得如此之快,以至于在前31次迭代之后它超出INT MAX并且加法结果为0.请记住,有符号整数的最大值为2^314个字节,带有符号位.
而不是while(true) {尝试while(count>0) {,你将看到它不是0时的前几次迭代.