Java中的幂运算符?

Ken*_*nan 7 java vb.net math int

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

Dim b As Double
b = (2 ^ 16 - 1) * Math.Sqrt(Math.Sqrt((a / (2 ^ 8 - 1))))
Run Code Online (Sandbox Code Playgroud)

(假设a是一个双倍,其值为15.0)
我得到的结果b大约是32,275.

但是,当我运行以下Java代码时,应该执行与上面相同的操作:

double b;
b = (2 ^ 16 - 1) * Math.sqrt(Math.sqrt((a / (2 ^ 8 - 1))));
Run Code Online (Sandbox Code Playgroud)

再次a15岁,我得到了一个非常不同的结果:大约17岁.

两者都在解决这个等式:

在此输入图像描述

为什么会这样?对于我正在进行的工作,Visual Basic会产生我正在寻找的结果.

Eng*_*uad 24

^是java中的XOR运算符.使用Math.pow(2,8)这是2 ^ 8在Visual Basic中.

  • 简洁的答案(1 +),Eng.恭喜大量的投票! (2认同)