Проверка двух соседних битов - 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;
Объяснение кода листинга программы
В данном коде происходит проверка двух соседних битов:
- Изначально значение переменной
m
равно 101101. - Затем в переменную
s
сдвигается значение переменнойm
на один бит влево, то есть в данном случае значение переменнойs
становится равным 010110. - Далее, с помощью операции
И
(AND) значение переменнойp
равно 000100, то есть происходит сравнение каждого бита переменнойs
с соответствующим битом переменнойm
. Если биты совпадают, то их значение сохраняется в переменнойp
. - В конце, значение переменной
r
равно 010101, так как в данном случае нет необходимости использовать операциюИ
с переменнойp
, так как значение переменнойp
уже содержит требуемую информацию.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д