【问题标题】:why does 2^0 return 2 in java [duplicate]为什么2 ^ 0在java中返回2 [重复]
【发布时间】:2012-12-12 18:12:27
【问题描述】:

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

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

谁能解释一下为什么

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

这确实返回 2?

我期待的是1

【问题讨论】:

  • ^ 是异或,不是幂运算符
  • 未来建议搜索:x operators。将x 替换为相关语言:它将涵盖“为什么/什么是 b ..?”的大多数问题。

标签: java


【解决方案1】:

因为^ 运算符并不意味着“将 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

【讨论】:

  • y thx,我只是忘记了 ^ 不是真正的 pow 运算符...
【解决方案2】:

^ 符号表示 XOR 而不是 pow。请改用Math.Pow(2.0, 0.0)

【讨论】:

    【解决方案3】:

    ^ 在 Java 中是按位异或。 所以 2(1 0) ^(XOR) 0(0 0) =1 0 即 2 !!! 明白了吗?

    【讨论】:

      猜你喜欢
      • 2015-07-23
      • 2019-03-19
      • 2021-09-02
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多