Составное присваивание с побитовым ИЛИ (!=) часто применяется к переменной и константе, чтобы установить определенные биты в переменной в 1.
Синтаксис
x != y; // эквивалентно x = x ! y;
Параметры
x - переменная типа char, int или long.
y - целочислительная константа или переменная типа char, int или long.
Пример
Работа побитового ИЛИ (!):
0 0 1 1 операнд1
0 1 0 1 операнд2
----------
0 1 1 1 (операнд1 ! операнд2) - результат
Операция побитового ИЛИ между битами и 0 не изменяет их, т.е. если переменная myByte имеет тип byte:
myByte | B00000000 = myByte;
Операция побитового ИЛИ между битами и 1 устанавливает их в 1:
myByte | B11111111 = B11111111;
Следовательно, чтобы установить в 1 биты 0 и 1 переменной, оставляя остальную часть переменной без изменений, используйте составное присваивание с побитовым ИЛИ (!=) вместе с константой 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
не изменились
биты очищены
Ниже показано то же самое, только биты переменной заменены символом x.
x x x x x x x x переменная
0 0 0 0 0 0 1 1 маска
----------------------
x x x x x x 1 1
не изменились
биты очищены
т.е, если
myByte = 10101010;
myByte |= B00000011 == B10101011;
Смотрите также:
&= (составное побитовое И)
& (побитовое И)
! (побитовое ИЛИ)
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/BitwiseCompoundOr |