276
правок
Изменения
→Применение для решения задач
*'''''Проверка на то, что в битовой записи числа нет двух единиц, идущих подряд:'''''<br/>Если выражение <tex>(x\ \&\ (x \ll 1))</tex> равно нулю, то в битовой записи числа <tex>x</tex> нет двух единиц, идущих подряд.
*'''''Номер младшего единичного бита:'''''<br/>Число, полученное в результате операции <tex>x\ \&\ (\sim x + 1)</tex> будет равно номеру младшего единичного бита в числе <tex>x</tex>.
*'''''Работа с битовыми масками:'''''<br/>Храним подмножества множества из <tex>32, 64</tex> или <tex>128</tex> фиксированных элементов. Значение каждого бита позволяет понять, включен элемент в множество или нет. Тогда легко сделать следующее: найти дополнение <tex>(\sim)</tex>, пересечение <tex>(\&)</tex>, объединение <tex>(\mid)</tex> множеств, установить бит по номеру <tex>(\mid 1 \ll x)</tex>, снять бит по номеру <tex>(\& \sim(1 \ll x))</tex>.
*'''''
==Источники информации==