Введение в биты в Rust
Битовые операции смотрят на число как на набор бит, а не как на одну величину. Каждый разряд в двоичной записи можно обрабатывать отдельно или сдвигать всю цепочку разрядов влево и вправо.
Такие приемы нужны для флагов, масок и нескольких переключателей в одном целом. Маска отмечает, какие разряды меняют, а какие оставляют без изменений. Сдвиги связаны со степенями двойки: влево умножают на степень, вправо делят на ту же степень с отбросом остатка.
Знаки битовой логики не заменяют обычное сложение и сравнение: они работают с разрядами, а не с порядком величины на линейке чисел. Для булевых значений в языке есть отдельные логические знаки, их не смешивают с целыми в одном выражении.
Дальше разберем соединение разрядов двух
чисел, переворот каждого разряда у одного
целого и сдвиг беззнакового типа. В конце
закрепим тему на задачах с маленькими
значениями u8.