2011-08-18 13 views
7

私は次のVisual Basicのコードを実行すると:JavaのPower演算子ですか?

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

aと仮定すると、その値は15.0で、二重です)
を私はbのために取得結果、約32275です。

しかし、私は上記と同じ操作を行うことになっている次のJavaコード、実行時に約17

aは15であることを再び

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

を、私は非常に異なる結果を得ます

enter image description here

なぜこれがそうである:どちらも、この方程式を解いていますか?私が取り組んでいるものについては、私が探しているVisual Basicの結果が得られます。

答えて

24

^は、javaでXOR operatorです。 Visual Basicでは2^8Math.pow(2,8)を使用してください。

+1

XORの他に、Javaではintはintかdoubleですか?そのintの場合、a/xもintなので – pablosaraiva

+0

この場合、 'a'はdouble値です。 – Kenan

+0

ありがとう!この解決策が働いた。私はなぜ '^'を使うことができるのか(なぜ今は私が知ることができないのか)、 'Math.pow()'が存在するのかと疑問に思っていました。 – Kenan