0

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

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

所以有人可以解释一下为什么

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

这会回来2吗?

我期待一个1

4

3 回答 3

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,请不要感到惊讶。您需要了解浮点数的工作原理

于 2012-12-27T10:37:18.540 回答
6

^符号表示XOR而不是 pow。试试Math.Pow(2.0, 0.0)吧。

于 2012-12-27T10:37:26.463 回答
4

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

于 2012-12-27T10:42:20.817 回答