Нам дают число n, значение v (v = 0 или 1) и позицию p. написать последовательность операций, которая изменяет значение n, чтобы бит в позиции p имел значение v. Пример: n = 35, p = 5, v = 0 -> n = 3. Другой пример: n = 35, p = 2, v = 1 -> n = 39.
Я не могу найти способ использовать только этот бит в позиции p.
Если я сделаю n >> p с числом, таким как 35 в битах, у меня будет
100011 >> 5 = 00001
Я не знаю, как получить значение v здесь.
Математически, даже если я думаю об этом выше, значение n становится 1, а не 3 после этой операции. Я совершенно сбит с толку, так как не могу объяснить эту проблему самому себе.
Console.Write("Enter n: ");
int n = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter p: ");
int p = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter v: ");
int v = Convert.ToInt32(Console.ReadLine());
int mask = n >> 5;
Console.WriteLine(mask);