Назад к вопросам
Junior
119
questionbank
Как можно установить бит в 1, используя побитовую операцию ИЛИ?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
// Использование побитового ИЛИ для установки бита в 1.
// Пусть 'number' - целочисленная переменная,
// и 'bitIndex' - индекс бита, который хотим установить (0-based).
// Для установки i-го бита в 1, нужно выполнить операцию:
// number = number | (1 << bitIndex);
// (1 << bitIndex) создает маску, где только bitIndex-й бит равен 1, а остальные равны 0.
// Операция ИЛИ (|) сравнивает соответствующие биты двух чисел.
// Если хотя бы один бит в паре равен 1, результат будет 1.
// Это гарантирует, что bitIndex-й бит в 'number' станет 1,
// независимо от его текущего значения, а остальные биты останутся неизменными.
unsigned int number = 10; // Двоичное представление: ...0000 1010
int bitIndex = 1; // Хотим установить 1-й бит (счет с 0)
// Установка 1-го бита в 1
number = number | (1 << bitIndex);
// Маска (1 << 1) = 2 (двоичное ...0000 0010)
// number | (1 << 1) будет:
// ...0000 1010
// | ...0000 0010
// --------------
// ...0000 1010 (в нашем случае 1-й бит уже был 1, значение не изменилось)
// Пример установки другого бита
bitIndex = 2; // Устанавливаем 2-й бит (0-based)
number = 10; // Снова начинаем с 10 (...0000 1010)
number = number | (1 << bitIndex);
// Маска (1 << 2) = 4 (двоичное ...0000 0100)
// number | (1 << 2) будет:
// ...0000 1010
// | ...0000 0100
// --------------
// ...0000 1110 (значение стало 14)