Назад к вопросам
Junior
83
questionbank

Как установить значение 0 в определенный бит числа?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Чтобы установить значение 0 в n-й бит числа x, используют побитовую операцию И (&) с маской, где n-й бит равен 0, а остальные — 1.

Маску можно получить, инвертировав (~) число, в котором только n-й бит равен 1. Число с n-м битом равным 1 получают, сдвинув 1 влево на n позиций (1U << n).

#include <iostream>

int main() {
    unsigned int x = 0b11010110; // Произвольное число
    int n = 2; // Номер бита (считая справа, начиная с 0)

    // Создаем маску с 0 в n-й позиции и 1 в остальных
    unsigned int mask = ~(1U << n);

    // Применяем маску с помощью побитового И
    x = x & mask;

    std::cout << "Число после установки 0 в " << n << "-й бит: " << std::bitset<8>(x) << std::endl;

    return 0;
}