Оператор питания в Java? - PullRequest
       21

Оператор питания в Java?

7 голосов
/ 18 августа 2011

Когда я запускаю следующий код Visual Basic:

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

(Предполагается, что a - это двойное число со значением 15,0)
Результат, полученный для b, составляет около 32 275.1007 *

Но когда я запускаю следующий Java-код, который должен делать то же, что и выше:

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

Опять с a, равным 15, я получаю совершенно другой результат: около 17.

Оба решают это уравнение:

enter image description here

Почему это так?Для чего я работаю, Visual Basic дает результат, который я ищу.

1 Ответ

24 голосов
/ 18 августа 2011

^ - это оператор XOR в Java.Используйте Math.pow(2,8), то есть 2 ^ 8 в Visual Basic.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...