TGViewer
Библиотека C/C++ разработчика | cpp, boost, qt Библиотека C/C++ разработчика | cpp, boost, qt @cppproglib · 16.8K subscribers
Post #4708 5.65K
🧨 Как установить, очистить и переключить один бит?

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

- Используется побитовый оператор OR (|), чтобы установить n-й бит number в 1 значение
- Стоит помнить, что сдвиг больше, чем на ширину типа, является неопределенным поведением

typedef unsigned long ulong;

ulong bit_set(ulong number, ulong n) {
return number | ((ulong)1 << n);
}


❗️Очистка бита

- Используется побитовый оператор AND (&) , чтобы установить n-й бит number в 0 значение
- Вы должны инвертировать битовую строку с помощью побитового оператора NOT (~) , затем оператор &
ulong bit_clear(ulong number, ulong n) {
return number & ~((ulong)1 << n);
}


❗️Переключение бита

- Используйте побитовый оператор XOR (^) для переключения n-го бита number

ulong bit_toggle(ulong number, ulong n) {
return number ^ ((ulong)1 << n);
}


❗️Проверка бита
- Чтобы проверить бит, сдвиньте number вправо на n бит , затем воспользуйтесь &

bool bit_check(ulong number, ulong n) {
return (number >> n)& (ulong)1;
}
  • 👍 27
  • ❤ 1
  • 😁 1
More from @cppproglib
  1. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  2. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  3. Sep 13, 2026🤩 Inline static в классах — забудь про .cpp Сколько раз ты забывал добавить определение s…
  4. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
  5. Aug 31, 2026❓Кто этот призрак в вашем коде: изучаем особенности работы с легаси на C++ Легаси — вот чт…
  6. Aug 8, 2026⚙️ Почему классический ООП тормозит игровые движки — и что с этим делать Обработка тысяч о…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →