gpt4 book ai didi

左移和加号的Java怪异行为

转载 作者:行者123 更新时间:2023-11-29 09:55:03 26 4
gpt4 key购买 nike

有人可以向我解释为什么这会打印出 0 而不是 2 吗?这里一定有一些简单的(读作愚蠢的)错误,但我无法弄清楚。谢谢。

public class test{
public static void main(String[] args){
int result[] = new int[]{0,0,1,0};
int out = 0;
for(int i = 0;i < result.length; i ++){
out = out << 1 + result[i];
}
System.out.println(out);
}
}

最佳答案

这是因为+优先级高于 << , 因此您需要使用括号来强制执行您需要的评估顺序:

out = (out << 1) + result[i];

这是一个link to a demo on ideone .

关于左移和加号的Java怪异行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15606544/

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