可能重复:
What does the ^ operator do in Java?
The power ^ in Java?
我很抱歉,如果这是重复的,但我没有在SO中找到任何东西。
有人可以解释为什么
System.out.println((2^0));
这确实会返回2
?
我期待1
。
答案 0 :(得分:8)
因为^
运算符并不意味着“将2提升到0次幂”。它是一个按位异或运算符。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
为此,您的代码应如下所示:
double one = Math.pow(2.0, 0.0); // Silly, but you can do it.
如果答案出现在不完全是1.0的情况下,请不要感到惊讶。您需要了解how floating point numbers work。
答案 1 :(得分:6)
^
符号表示XOR而不是pow。请改为Math.Pow(2.0, 0.0)
。
答案 2 :(得分:4)
^是按位异或。 所以2(1 0)^(XOR)0(0 0)= 1 0即2 !!! 知道了吗?