【问题标题】:The power operator in Java?Java中的幂运算符?
【发布时间】:2011-10-29 09:55:34
【问题描述】:

当我运行以下 Visual Basic 代码时:

Dim b As Double
b = (2 ^ 16 - 1) * Math.Sqrt(Math.Sqrt((a / (2 ^ 8 - 1))))

(假设 a 是一个值为 15.0 的双精度)
我为b 得到的结果约为 32,275。

但是当我运行下面的 Java 代码时,应该和上面一样:

double b;
b = (2 ^ 16 - 1) * Math.sqrt(Math.sqrt((a / (2 ^ 8 - 1))));

再一次,a 是 15,我得到一个完全不同的结果:大约 17。

两者都在求解这个方程:

为什么会这样?对于我正在处理的工作,Visual Basic 产生了我正在寻找的结果。

【问题讨论】:

    标签: java vb.net math int


    【解决方案1】:

    ^ 在 java 中是 XOR operator。在 Visual Basic 中使用Math.pow(2,8),即2 ^ 8

    【讨论】:

    • 除了 XOR 的东西,在 Java 中 a 是 int 还是 double?因为如果它是int,那么a/x也是int。
    • a 在这种情况下是一个双精度值。
    • 谢谢!这个解决方案奏效了。我想知道如果我可以使用^(我现在知道我不能),为什么Math.pow() 甚至存在。
    • 简洁的答案 (1+),英文。恭喜获得高票!
    猜你喜欢
    • 1970-01-01
    • 2017-06-06
    • 2011-09-18
    • 1970-01-01
    • 2014-08-21
    • 2013-11-13
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多