Нужно ли новичку знать и понимать побитовые операции и операции сдвига?
Нужно ли новичку знать и понимать побитовые операции и операции сдвига? Только начинаю изучать Java и в дальнейшем собираюсь изучать Android разработку. Стоит ли сейчас заострять внимание на этих операциях, 2/8/16-чной системах счисления, или Junior/Middle разработчику эти знания вряд ли понадобятся и это уровень Senior и специфичных задач?
Ответы (1 шт):
Автор решения: Виталий Перятин
→ Ссылка
Знать побитовые операции однозначно нужно! В этом ответе я постараюсь собрать воедино несколько причин, если что-то забуду - комментируйте.
- Это самые основы, зная которые Вы будете больше понимать как работает программа.
- Побитовые сдвиги за место умножения и деления, например, увеличивают скорость программ (хоть и незначительно). Обычно это редко применяется в production, так как уменьшает читаемость кода, но в библиотеках часто так пишут.
- Чтение кода библиотек. Во многих Core библиотеках используют сдвиги вместо умножения. Например, в скрине ниже Вы можете увидеть как увеличивается размер ArrayList при нехватке места. Таким образом производится умножение на 1.5.

- Побитовые операции часто используются в различных флагах. Например, очень удобно в одном числе совмещать несколько флагов, где каждый бит отвечает за свой флаг. Далее с помощью побитового умножения этот флаг быстро проверяется. Таким образом, увеличиваем скорость работы программы и избегаем лишнего кода.
- Системы счисления знать необходимо. Как минимум из-за того, что через них задаются цвета (как уже было замечено в комментариях).