Нужно ли новичку знать и понимать побитовые операции и операции сдвига?

Нужно ли новичку знать и понимать побитовые операции и операции сдвига? Только начинаю изучать Java и в дальнейшем собираюсь изучать Android разработку. Стоит ли сейчас заострять внимание на этих операциях, 2/8/16-чной системах счисления, или Junior/Middle разработчику эти знания вряд ли понадобятся и это уровень Senior и специфичных задач?


Ответы (1 шт):

Автор решения: Виталий Перятин

Знать побитовые операции однозначно нужно! В этом ответе я постараюсь собрать воедино несколько причин, если что-то забуду - комментируйте.

  1. Это самые основы, зная которые Вы будете больше понимать как работает программа.
  2. Побитовые сдвиги за место умножения и деления, например, увеличивают скорость программ (хоть и незначительно). Обычно это редко применяется в production, так как уменьшает читаемость кода, но в библиотеках часто так пишут.
  3. Чтение кода библиотек. Во многих Core библиотеках используют сдвиги вместо умножения. Например, в скрине ниже Вы можете увидеть как увеличивается размер ArrayList при нехватке места. Таким образом производится умножение на 1.5. введите сюда описание изображения
  4. Побитовые операции часто используются в различных флагах. Например, очень удобно в одном числе совмещать несколько флагов, где каждый бит отвечает за свой флаг. Далее с помощью побитового умножения этот флаг быстро проверяется. Таким образом, увеличиваем скорость работы программы и избегаем лишнего кода.
  5. Системы счисления знать необходимо. Как минимум из-за того, что через них задаются цвета (как уже было замечено в комментариях).
→ Ссылка