Задача · Операторы и выражения · урок 8 из 8
Задача: флаги в битах
Число flags хранит набор флагов: флаг номер bit включён, если бит номер bit равен 1. Напишите unsigned set_flag(unsigned flags, int bit) и unsigned clear_flag(unsigned flags, int bit): первая возвращает flags, где этот бит установлен в 1, вторая — где он сброшен в 0, а остальные биты прежние. Третья функция, bool has_flag(unsigned flags, int bit), возвращает true, если этот бит равен 1.
set_flag(1u, 3)→9uclear_flag(9u, 0)→8uhas_flag(2147483648u, 31)→true
Ограничения: bit — от 0 до 31, а unsigned занимает 32 бита. Если бит уже установлен, set_flag возвращает flags без изменений; если он уже сброшен, так же поступает clear_flag.
Не добавляйте лишних #include, если в задаче это прямо не сказано.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.