Установка n-ого бита в единицу ``` x | (1<<n) ``` Обнуление n-ого бита ``` x & ~(1<<n) ``` Переключение n-ого бита ``` x ^ (1<<n) ``` Умножение на 2 ``` n << 1 ``` Деление на 2 ``` n >> 1 ``` Умножение на m-тую степень 2 ``` n << m ``` Деление на m-тую степень 2 ``` n >> m ``` Проверка на равенство ``` (a^b) == 0 ``` Проверка на чётность ``` (n & 1) == 1 ``` Вычисление 2^n ``` 2 << (n-1) ``` Проверка на степень 2 ``` n > 0 && (n & (n - 1)) == 0 ``` Остаток от деления 2^n на m ``` m & (n - 1) ``` Среднее арифметическое ``` (x + y) >> 1 ``` Получение m-ого бита n (справа налево) ``` (n >> (m-1)) & 1 ``` Установка m-ого бита n (справа налево) ``` n & ~(1 << (m-1)) ``` Выделение самой правой 1 ``` x & (-x) ``` Выделение самого правого 0 ``` ~x & (x+1) ``` Смена самого правого 0 на 1 ``` x | (x+1) ``` Проверка на одинаковый знак ``` (x ^ y) >= 0 ```