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

Som*_*Guy 0 java

可能重复:
^运算符在Java中做什么?
Java中的力量^?

如果这是重复,我很抱歉,但我没有找到任何东西.

所以有人可以解释为什么

     System.out.println((2^0));
Run Code Online (Sandbox Code Playgroud)

这确实回归了2吗?

我在期待一个1.

duf*_*ymo 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.
Run Code Online (Sandbox Code Playgroud)

如果答案出现在不完全是1.0的情况下,请不要感到惊讶.您需要了解浮点数的工作原理.


rek*_*ire 6

^标志意味着XOR,而不是战俘.试试吧Math.Pow(2.0, 0.0).