Встречаю в коде конструкции вида
int index = 2;
if ((index & 1) == 1)
{..}
Никак не могу понять "сакральный смысл" использования такой конструкции, или это просто в силу привычки люди так пишут.
Это проверка на чётность/нечётность (конкретно в вашем примере на нечетность).
Суть в двоичном представлении числа, в котором самый младший бит является 2 в степени 0, то есть это либо 1, либо 0. Вот если этот младший бит равен 1, значит число — нечётное, а если он равен 0 — то число чётное.
Примеры:
34810 в двоичной – 1010111002, последний бит 0, число чётное.
34710 в двоичной – 1010110112, последний бит 1, число нечётное.
210 в двоичной 102, чётное.
510 в двоичной 1012, нечётное.
P.S. обратил внимание, что в заголовке вопроса указано int & int, а не int & 1, если же имеется ввиду именно int & int, то у побитового and более широкое применение.
& - Логическая операция "И". Побитное умножение одного числа на другое. По сути приведенная выше конструкция означает умножение.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники