В чем суть операторов << и >> - C (СИ)
Формулировка задачи:
Здравствуйте., нужна помощь.
Имеется следующий код
Не могу понять значение операторов << и >>.
В документации к среде написано: операторы побитового сдвига (значение первого операнда сдвигается на количество бит указанных во втором операнде).
Однако, если я правильно понял РВ0 это имя одного (первого) бита регистра. Опять же наличие числа перед оператором, для меня снова делает это выражение непонятным.
Среда разработки CodeVision AVR 3.12.
Я понимаю, что в самой среде могут использоваться иные/дополнительные операторы не оговоренные в стандарте языка, либо операторы могут иметь совсем иное значение. Однако не могу найти детальную и достоверную информацию по данным операторам (возможно я не там ищу).
P.S. Если я правильно понял:
PINB - регистр размером один байт, значение каждого бита означает состояние сигнала на входе порта (1- логическая единица, 0 - ноль)
PORTB - регистр размером один байт, значение каждого бита означает состояние сигнала на выходе порта (что будет подано, 1- логическая единица, 0 - ноль).
Заранее спасибо за помощь.
Прошу прощения, если вопрос задан не в тему или не в той ветке.
if ((PINB&(1 << PB0)) == 0) // Если на выводе PB0 лог. 0 { PORTB |= (1 << PB0); // Лог. 1 на выводе PB0 } else
Решение задачи: «В чем суть операторов << и >>»
textual
Листинг программы
if ((PINB & (1 << PB0)) == 0)
Объяснение кода листинга программы
- В данном коде используется оператор <<, который выполняет сдвиг данных вправо.
- В условии используется оператор & (логическое И), который сравнивает два значения.
- PINB - это регистр, который содержит информацию о состоянии портов ввода/вывода.
- 1 << PB0 - это выражение, которое сдвигает число 1 вправо на количество позиций, равное PB0.
- Результат этого выражения затем сравнивается с 0.
- Если результат равен 0, то выполняется блок кода внутри условия if.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д