Подтвердить что ты не робот

Почему Java не поддерживает <<< oprerator

Почему Java не поддерживает оператор <<< (без знака влево), но поддерживает оператор >>> (без знакового сдвига справа)?

4b9b3361

Ответ 1

Java добавляет оператор " → > " для выполнения логических сдвигов вправо, но потому что логические и арифметические операции с левым сдвигом идентичный, нет "< < < оператора в Java.

из Сдвиги в Java...

Ответ 2

Почему Java не поддерживает оператор <<< (без знака влево), но поддерживает оператор >>> (без знакового сдвига справа)?

Поскольку (гипотетический) беззнаковый оператор сдвига влево будет делать то же самое, что и существующий оператор сдвига влево.

(Подсказка: умножение двоичного целого на 2 влечет за собой смещение влево на 1 и принятие нулевого правого нуля, независимо от того, подписано ли целое представление или нет знака. Напишите несколько примеров на листе бумаги и проверьте его сами).

Ответ 3

Почему Java не поддерживает < < (без знака влево), но поддерживает оператор → > (без знакового сдвига справа)?

Это потому, что, когда вы оставили сдвиг бит, самый левый бит (бит AKA SIGNED) теряется в любом случае.

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

Ответ 4

Я думаю, что это ошибка дизайна. < не является арифметическим сдвигом. & Л; < предполагается умножить 2 если вы делаете

0xF0FFFFFF < 4

он возвращает положительное число! отрицательное число умножить 2 никогда не должно иметь положительного числа. < делает < < работа.