Побитовые операции - C (СИ) (69706)

Узнай цену своей работы

Формулировка задачи:

Даны два целых положительных числа А и В.: 1. Определить значение каждого бита числа А. 2. Обнулить все четные биты числа А. 3. Выполнить проверку заданного (вводится с клавиатуры) бита числа В и если заданный бит имеет значение «ЛОЖЬ», т.е. равен 0, установить его. Переменные А и B должны иметь тип unsigned int. Исходные данные и результат вывести в десятичной, шестнадцатеричной системах счисления и в виде двоичного числа. Хелп плиз

Решение задачи: «Побитовые операции»

textual
Листинг программы
1.
int WhatBit(unsigned A, int n) // Биты нумеруются с младшего, с 0
{
   return((A>>n)&1);
}
2.
unsigned int ObNul(unsigned int A)
{ unsigned int T = 0, i;
    for(i=1; i<8*sizeof(int); i+=2)
       T |= (1<<i);
    return T&A;
}

Объяснение кода листинга программы

  1. Функция WhatBit принимает два аргумента: unsigned A и int n. Значение n используется как смещение, определяющее, какой бит в числе A нужно проверить. Функция возвращает значение этого бита, но сдвинутого вправо на n позиций.
  2. Функция ObNul принимает один аргумент: unsigned int A. Она инициализирует переменную T значением 0 и затем проходит по всем битам числа A, начиная со второго бита (для которого индекс нечетный). Для каждого бита функция добавляет в T соответствующий бит с четным индексом (поскольку индексация в C начинается с 0). В конце функция возвращает значение T, сдвинутое вправо на n позиций, где n равно размеру int в байтах, умноженному на 2 (поскольку в int обычно 4 байта, то есть 8 позиций, и сдвиг на 2 позиции вправо дает тот же результат, что и сдвиг на 1 позицию влево).
  3. Оба этих фрагмента кода используются для работы с битами чисел, но в разных контекстах. Функция WhatBit может быть использована, например, для проверки, установлен ли определенный бит в числе, а функция ObNul может быть использована, например, для обнуления определенных битов в числе.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы