я сканировал исходный третий участник код с помощью FindBugs (просто быть осторожным, прежде чем интегрироваться в него шахты), и обнаружили следующее предупреждение:Предупреждение Findbugs: целочисленный сдвиг на 32 - что это значит?
long a = b << 32 | c
Ошибка: Integer сдвиг на 32 Шаблон ID: ICAST_BAD_SHIFT_AMOUNT , тип: BSHIFT, категории: КОРРЕКТНОСТЬ
код выполняет целочисленный сдвиг на постоянной величины вне диапазона 0..31. Эффект от этого заключается в том, чтобы использовать более низкие 5 бит целочисленного значения , чтобы решить, сколько сдвинуть. Этот , вероятно, не нужен, и он хотя бы сбивает с толку.
Не могли бы вы объяснить, что именно означает это выше?
Спасибо! (Я довольно новичок в программировании на Java)
Итак,' int >> 32 (0x100000) == int >> 0 (0x00000) '? –
Странный псевдосинтакс, который вы используете, но да, вот и все. – UndefinedBehavior