Почему Java не поддерживает оператор <<<
(без знака влево), но поддерживает оператор >>>
(без знакового сдвига справа)?
Почему Java не поддерживает <<< oprerator
Ответ 1
Java добавляет оператор " → > " для выполнения логических сдвигов вправо, но потому что логические и арифметические операции с левым сдвигом идентичный, нет "< < < оператора в Java.
Ответ 2
Почему Java не поддерживает оператор
<<<
(без знака влево), но поддерживает оператор>>>
(без знакового сдвига справа)?
Поскольку (гипотетический) беззнаковый оператор сдвига влево будет делать то же самое, что и существующий оператор сдвига влево.
(Подсказка: умножение двоичного целого на 2 влечет за собой смещение влево на 1 и принятие нулевого правого нуля, независимо от того, подписано ли целое представление или нет знака. Напишите несколько примеров на листе бумаги и проверьте его сами).
Ответ 3
Почему Java не поддерживает < < (без знака влево), но поддерживает оператор → > (без знакового сдвига справа)?
Это потому, что, когда вы оставили сдвиг бит, самый левый бит (бит AKA SIGNED) теряется в любом случае.
Так как беззнаковый оператор сдвига влево будет делать то же самое, что и существующий оператор сдвига влево, мы его не имеем.
Ответ 4
Я думаю, что это ошибка дизайна. < не является арифметическим сдвигом. & Л; < предполагается умножить 2 если вы делаете
0xF0FFFFFF < 4
он возвращает положительное число! отрицательное число умножить 2 никогда не должно иметь положительного числа. < делает < < работа.