Установка битов

Немножко просел по побитовым операциям.
Не совсем понимаю, как, допустим, установить 7 бит в 1.

int N;
cin >> N;
N |= (1 << (31-7));
cout << N;

Тобишь сдвигаем на 31-7 и пишем в первый бит.
Или я не правильно что-то понимаю?
Верно ли мое решение?


Ответы (1 шт):

Автор решения: Юрий Козлов

Биты нумеруются справа на лево, начиная с нуля.

Поэтому установить седьмой бит можно следующим образом:

N |= (1 << 7);

А сбросить, соответственно, следующим:

N &= (0xFFFE << 7); //для 32-битного N
→ Ссылка