12

When I run the following Visual Basic code :

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

(Assuming a is a double whose value is 15.0)
The result I get for b is about 32,275.

But when I run the following Java code, which is supposed to do the same as above:

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

Again with a being 15, I get a much different result: about 17.

Both are solving this equation:

enter image description here

Why is this so? For what I'm working on, the Visual Basic yields result I'm looking for.

Eng.Fouad
  • 115,165
  • 71
  • 313
  • 417
Kenan
  • 2,086
  • 1
  • 16
  • 20

1 Answers1

32

^ is XOR operator in java. Use Math.pow(2,8) which is 2 ^ 8 in Visual Basic.

Eng.Fouad
  • 115,165
  • 71
  • 313
  • 417