- Библиотеки
- Операторы
- Sketch
- Управляющие операторы
- Синтаксис
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Указатели доступа
- Битовые операторы
- ^ (побитовое XOR)
- Составные операторы
- Данные
- Типы данных
- Преобразование типов данных
- Область видимости переменных и квалификаторы
- Утилиты
- Функции
- Цифровой ввод/вывод
- Аналоговый вход/выход
- Расширенный ввод/вывод
- Время
- Математические функции
- Тригонометрические функции
- Символы
- Случайные числа
- Биты и байты
- Внешние Прерывания
- Прерывания
- Функции передачи данных
- Функции
^ (побитовое XOR)
побитовое XOR или исключающее ИЛИ
Описание
В C++ есть необычный оператор, называемый побитовый XOR. Побитовый оператор XOR пишется с помощью символа вставки ^. Побитовая операция XOR приводит к 1, только если входные биты отличаются, иначе это приводит к 0.
0 0 1 1 операнд1
0 1 0 1 операнд2
----------
0 1 1 0 (операнд1 ^ операнд2) - результат
Пример:
int x = 12; // в двоичном: 1100
int y = 10; // в двоичном: 1010
int z = x ^ y; // в двоичном: 0110, или 6 в десятичном формате
Оператор ^ часто используется для переключения (то есть изменения 0 в 1 или 1 в 0) некоторых битов в целочисленном выражении. В битовой операции XOR, если в бите маски есть 1, этот бит инвертируется; если есть 0, бит не инвертируется и остается неизменным.
void setup() {
DDRB = DDRB | B00100000; // бит 5 на выход
Serial.begin(9600);
}
void loop() {
PORTB = PORTB ^ B00100000; // переключили бит 5
delay(100);
}