Логические операторы XOR (^) для C#

Эта статья предназначена для документирования побитового оператора XOR

Почему вы хотите задокументировать это?
Однажды я увидел удивительное решение проблемы, оно было очень элегантным и быстрым, а мое собственное решение было очень простым.

Существует четыре типа битовых операторов, &, |, ^ и ~, которые определяются следующим образом

Операторы Определение Описание
& AND (и) Когда оба истинны, результат истинен
| OR (или) если одно из двух истинно, то результат истинен
^ XOR (взаимоисключающее ИЛИ) Если оба значения истинны или ложны, результат будет истинным
~ НЕ (не) Инвертирующие биты

Приведенная выше таблица перед использованием преобразуется в битовую (т.е. двоичную).

Какова же природа XOR?
При выполнении условий 1 и 2 возвращается false.

Условие A Условие B результат
1 1 0
1 0 1
0 1 1
0 0 0

Для тех, кто не привык видеть 0 1, пожалуйста, обратитесь к следующей таблице

Условие A Условие B результат
правда правда ложный
правда ложный правда
ложный правда правда
ложный ложный ложный

Использование

Console.WriteLine(1 ^ 1);    // output: False
Console.WriteLine(1 ^ 0);   // output: True
Console.WriteLine(0 ^ 1);   // output: True
Console.WriteLine(0 ^ 0);  // output: False

Console.WriteLine(true ^ true);    // output: False
Console.WriteLine(true ^ false);   // output: True
Console.WriteLine(false ^ true);   // output: True
Console.WriteLine(false ^ false);  // output: False
Войдите в полноэкранный режим Выход из полноэкранного режима

После понимания основной концепции, каков результат использования оператора XOR, если у вас есть два числа, 2 и 3?

Начните с преобразования десятичных чисел в двоичные
2 → 010
3 → 011

Затем вы выполняете ту же операцию с теми же цифрами

Цифры → 0 ^ 1 = 1
десятки → 1 ^ 1 = 0
Сотые → 0 ^ 0 = 0

Конечный результат равен 001, что является 1 в десятичной дроби.

Подведем итоги того, что мы видим из XOR

  • A ^ 0 всегда A
  • A ^ A всегда A

Таким образом, когда число XOR само по себе, оно определенно равно 0. Когда несколько чисел XOR соединяются, результатом будет одно число, например, A ^ B ^ C ^ A ^ B, результатом будет одно число C. Начнем с этого!

Ссылка

Булевы логические операторы (ссылка на C#)


Спасибо, что прочитали статью 🌷 🌻 🌼

Если вам понравилось, пожалуйста, не стесняйтесь нажать на кнопку сердечка ❤️
или следите за моим GitHub ⭐.
или купите мне кофе ⬇️ Я буду благодарен.

Оцените статью
devanswers.ru
Добавить комментарий