Arduino:Справочник языка Arduino/Унарные операторы/Побитовый оператор OR, совмещенный с присваиванием
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Побитовый оператор OR, совмещенный с присваиванием[1]
Этот оператор (обозначается как «|=») требует, как правило, переменной и константы, а его функция заключается в «перенастройке» некоторых битов в переменной на «1».
Синтаксис
x |= y; // это то же самое, что и x = x | y
Параметры
x — переменная в виде символа, целого или длинного целого
y — константа в виде целого или символ, целое или длинное целое
Пример
Для начала вспомним, как работает побитовый OR:
0 0 1 1 operand1
0 1 0 1 operand2
----------
0 1 1 1 (operand1 | operand2) – возвращенный результат
То есть, если во втором операнде будут «0», то все исходные биты останутся без изменений. Например...
myByte | B00000000 = myByte;
С другой стороны, если во втором операнде будут одни «1», то и все исходные биты тоже поменяются на «1». Вот так...
myByte | B11111111 = B11111111;
Следовательно, чтобы поменять не все, а лишь выборочные биты, мы как раз воспользуемся побитовым оператором OR, совмещенным с присваиванием, и применим его вместе с константой B00000011:
1 0 1 0 1 0 1 0 переменная
0 0 0 0 0 0 1 1 маска
----------------------
1 0 1 0 1 0 1 1 первые 6 бит остались нетронутыми, 2 последних — были изменены
А вот тот же пример, но значения переменной заменены на «иксы»:
x x x x x x x x переменная
0 0 0 0 0 0 1 1 маска
----------------------
x x x x x x 1 1 первые 6 бит остались нетронутыми, 2 последних — были изменены
Таким образом...
myByte = B10101010;
myByte |= B00000011 == B10101011;
См.также
- &= (побитовый оператор AND, совмещенный с присваиванием)
- Побитовый оператор AND (&)
- Побитовый оператор OR
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Унарные операторы языка Arduino
- Унарный оператор