xor C++ оператор альтернативный ^ (побитовому исключающему ИЛИ)

1) Оператор xor служит альтернативным названием для оператора ^ (побитовое исключающее ИЛИ)


#include <iostream> // cout, endl
#include <bitset>   // bitset
using namespace std;
int main(){
    bitset<8> a(0b11110000);    // Задаем 8 бит
    bitset<8> b(0b00111100);    // Задаем 8 бит
    cout << "a xor b = " << (a xor b); //a xor b = 11001100
}

2) Оператор xor (побитовое исключающее ИЛИ) обладает замечательным свойством - если последовательность бит "проксорить" с любой другой последовательностью бит дважды, то исходная последовательность восстановится. Данное свойство используют в защите информации. Необходимо помнить, что защита будет надежной только если последовательность с которой будут "ксорить" будет случайная, будет неизвестна злоумышленнику, и не будет повторяться для разных защищаемых сообщений.


#include <iostream> // cout, endl
#include <bitset>   // bitset
using namespace std;
int main(){
    bitset<8> a(0b11110000);        // Задаем 8 бит
    bitset<8> b(0b00111100);        // Задаем 8 бит
    bitset<8> ab = a xor b;         // ab равно побитовому исключающему ИЛИ над a и b
    cout << "ab = " << ab << endl;  //ab = 11001100
    ab = ab xor b;                  // Производим еще раз побитовое исключающее ИЛИ с b (восстанавливаем a)
    cout << "ab = " << ab << endl;  //ab = 11110000     (результат равен a)
}
2024-09-08



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

not оператор С++ альтернативный "Логическое Не" !
not_eq оператор С++ альтернативный "НЕ РАВНО" !=
operator C++ перегрузка операторов в классе
or альтернативное наименование оператора || (Логическое ИЛИ)
or_eq альтернативное наименование оператора |= (Побитовое ИЛИ)
reinterpret_cast С++ оператор приведения типов
sizeof С++ оператор возвращающий размер переменной или типа данных в байтах
static_assert С++, С++ проверка ошибок на этапе компиляции
static_cast С++ оператор приведения типов
xor C++ оператор альтернативный ^ (побитовому исключающему ИЛИ)
xor_eq C++ альтернатива оператору ^= (Исключающее ИЛИ равно)