Побитовые операции - 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; }
Объяснение кода листинга программы
- Функция
WhatBit
принимает два аргумента:unsigned A
иint n
. Значениеn
используется как смещение, определяющее, какой бит в числеA
нужно проверить. Функция возвращает значение этого бита, но сдвинутого вправо наn
позиций. - Функция
ObNul
принимает один аргумент:unsigned int A
. Она инициализирует переменнуюT
значением 0 и затем проходит по всем битам числаA
, начиная со второго бита (для которого индекс нечетный). Для каждого бита функция добавляет вT
соответствующий бит с четным индексом (поскольку индексация в C начинается с 0). В конце функция возвращает значениеT
, сдвинутое вправо наn
позиций, гдеn
равно размеруint
в байтах, умноженному на 2 (поскольку вint
обычно 4 байта, то есть 8 позиций, и сдвиг на 2 позиции вправо дает тот же результат, что и сдвиг на 1 позицию влево). - Оба этих фрагмента кода используются для работы с битами чисел, но в разных контекстах. Функция
WhatBit
может быть использована, например, для проверки, установлен ли определенный бит в числе, а функцияObNul
может быть использована, например, дляобнуления
определенных битов в числе.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д