Чтобы взвести (установить) бит в определённое значение (1) в числе, можно использовать побитовую операцию ИЛИ (
|). Эта операция позволяет установить конкретный бит в 1, не изменяя остальные биты числа.🚩Как это работает
Операция ИЛИ (
|) сравнивает каждый бит двух чисел. Если хотя бы один из битов в соответствующей позиции равен 1, результат в этой позиции будет 1. Иначе, результат будет 0.🚩Шаги
1⃣Создаём маску, которая имеет единицу в позиции
n и нули в остальных позициях. Это можно сделать с помощью выражения 1 << n.2⃣Применяем операцию ИЛИ между числом
x и маской.#include <iostream>
int main() {
int x = 0b00001010; // Число, с которым работаем (10 в десятичной системе)
int n = 3; // Позиция бита, которую хотим установить (начиная с 0)
// Создаём маску с единицей в позиции n
int mask = 1 << n;
// Устанавливаем бит в позиции n
x = x | mask;
// Вывод результата
std::cout << "Результат: " << std::bitset<8>(x) << std::endl; // Двоичный вывод
std::cout << "Результат: " << x << std::endl; // Десятичный вывод
return 0;
}
1 << n создает маску, сдвигая 1 влево на n позиций. Например, если n = 3, результат будет 0b00001000. Операция x | mask устанавливает бит в x на позиции n в 1. Если бит в x на позиции n уже был 1, он останется 1, если он был 0, то станет 1.🚩Пример вывода
Если
x было 0b00001010 и n = 3, результат будет:Маска:
0b00001000x | mask: 0b00001010 | 0b00001000 = 0b00001010В результате бит в позиции 3 установлен в 1, и итоговое значение числа в двоичном формате
0b00001010 (десятичное 10).Ставь 👍 и забирай 📚 Базу знаний