У меня возникли проблемы с левой битными сдвигами в Java возвращаются неправильные значения ...Java Bit сдвиг влево Возвращает неверное значение
Возьмите 108 < < 60, например. Ответ на этот вопрос должен быть *:
124515522497539473408
Java возвращает это значение
-4611686018427387904
для этого утверждения:
System.out.println(108L << 60L);
Почему ??? Оба значения принудительно длинны ... поэтому я не вижу причин, по которым любые битовые значения должны быть усечены. Что мне здесь не хватает?
* Образец цитирования: Wolfram Alpha
Хм ... какое наибольшее значение может держать 'long'? – Mysticial
Я верю, что это в квадриллионах? – bgroenks