为什么2 ^ 0在java中返回2

时间:2012-12-27 10:36:18

标签: java

  

可能重复:
  What does the ^ operator do in Java?
  The power ^ in Java?

我很抱歉,如果这是重复的,但我没有在SO中找到任何东西。

有人可以解释为什么

     System.out.println((2^0));

这确实会返回2

我期待1

3 个答案:

答案 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)

Java中的

^是按位异或。 所以2(1 0)^(XOR)0(0 0)= 1 0即2 !!! 知道了吗?