В предыдущей части мы познакомились с битовыми операциями инверсии и сдвига. Теперь рассмотрим "и". & – "и" В этой операции участвуют два числа. Вместе они дают некий результат. Можно назвать это умножением, но не для всего числа, а для каждого отдельного бита. 1 & 1 это то же, что 1 * 1. Результат 1.
1 & 0 это то же, что 1 * 0. Результат 0.
0 & 1 это то же, что 0 * 1. Результат 0.
0 & 0 это то же, что 0 * 0. Результат 0. Результат 1 возможен только тогда, когда и первая часть выражения, и вторая часть выражения равны 1. Отсюда и название "и". Давайте посмотрим на примере реальных чисел: Чем полезна такая операция? Если у вас хранится какое-то число, то операция "и" позволяет получить избранные биты из этого числа, отбросив все остальные. Для этого нужно создать битовую маску, в которой нужно поставить 1 там, где вы хотите сохранить бит, и 0 там, где нужно отбросить. Но зачем получать избранные биты из числа? У вас может быть несколько условий, задающих текущее состояние программы. Есл