Проверка двух соседних битов - C (СИ)

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

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

Всем привет! Имеется 2 битовые маски из N битов, причем N четное число. Выполняем логическое ИЛИ над ними. Получаем новую маску, состоящую из N бит. Как проверить что биты 1 и 2 не равны 1 оба, биты 3 и 4 тоже не равны 1 оба .... N-1 и N бит не равны 1 оба? То есть по парно получается проверить биты.
Ошибся формулировкой. Не логическое или, а побитовое.

Решение задачи: «Проверка двух соседних битов»

textual
Листинг программы
m = 101101;
s = m>>1; // s = 010110
p = m&s; // p = 000100;
r = p&010101;

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

В данном коде происходит проверка двух соседних битов:

  1. Изначально значение переменной m равно 101101.
  2. Затем в переменную s сдвигается значение переменной m на один бит влево, то есть в данном случае значение переменной s становится равным 010110.
  3. Далее, с помощью операции И (AND) значение переменной p равно 000100, то есть происходит сравнение каждого бита переменной s с соответствующим битом переменной m. Если биты совпадают, то их значение сохраняется в переменной p.
  4. В конце, значение переменной r равно 010101, так как в данном случае нет необходимости использовать операцию И с переменной p, так как значение переменной p уже содержит требуемую информацию.

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

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