0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: xor, or, and, not, логические операции, исключающее или, бит, битовые операции</p>
1
<p>Теги: xor, or, and, not, логические операции, исключающее или, бит, битовые операции</p>
2
<p>В этой статье мы поговорим о некоторых битовых операциях. Рассмотрим основные из них: XOR (исключающее ИЛИ), AND (И), NOT (НЕ) а также OR (ИЛИ).</p>
2
<p>В этой статье мы поговорим о некоторых битовых операциях. Рассмотрим основные из них: XOR (исключающее ИЛИ), AND (И), NOT (НЕ) а также OR (ИЛИ).</p>
3
<p>Как известно, минимальной единицей измерения информации является<strong>бит</strong>, который хранит одно из 2-х значений: 0 (<strong>False</strong>, ложь) либо 1 (<strong>True</strong>, истина). Таким образом, битовая ячейка может одновременно находиться лишь в одном из двух возможных состояний.</p>
3
<p>Как известно, минимальной единицей измерения информации является<strong>бит</strong>, который хранит одно из 2-х значений: 0 (<strong>False</strong>, ложь) либо 1 (<strong>True</strong>, истина). Таким образом, битовая ячейка может одновременно находиться лишь в одном из двух возможных состояний.</p>
4
<p>Для манипуляций с битами используют определённые операции -<strong>логические или булевые</strong>. Они могут применяться к любому биту, вне зависимости от того, какое у него значение - ноль или единица. Что же, давайте посмотрим на примеры использования трёх основных логических операций.</p>
4
<p>Для манипуляций с битами используют определённые операции -<strong>логические или булевые</strong>. Они могут применяться к любому биту, вне зависимости от того, какое у него значение - ноль или единица. Что же, давайте посмотрим на примеры использования трёх основных логических операций.</p>
5
<h2>Логическая операция AND (и)</h2>
5
<h2>Логическая операция AND (и)</h2>
6
<p><strong>AND</strong>обозначается знаком &.</p>
6
<p><strong>AND</strong>обозначается знаком &.</p>
7
<p>Оператор AND выполняется с 2-мя битами, возьмём, к примеру, a и b. Результат выполнения операции AND равен 1, если a и b равняются 1. В остальных случаях результат равен 0. Например, с помощью AND вы можете узнать, чётное число или нет.</p>
7
<p>Оператор AND выполняется с 2-мя битами, возьмём, к примеру, a и b. Результат выполнения операции AND равен 1, если a и b равняются 1. В остальных случаях результат равен 0. Например, с помощью AND вы можете узнать, чётное число или нет.</p>
8
<p>Посмотрите на таблицу истинности операции AND:</p>
8
<p>Посмотрите на таблицу истинности операции AND:</p>
9
<h2>Логическая операция OR (ИЛИ)</h2>
9
<h2>Логическая операция OR (ИЛИ)</h2>
10
<p>Обозначается знаком |.</p>
10
<p>Обозначается знаком |.</p>
11
<p>Оператор<strong>OR</strong>также выполняется с 2-мя битами (a и b). Результат равен 0, если a и b равны 0, иначе он равен 1. Смотрим таблицу истинности.</p>
11
<p>Оператор<strong>OR</strong>также выполняется с 2-мя битами (a и b). Результат равен 0, если a и b равны 0, иначе он равен 1. Смотрим таблицу истинности.</p>
12
<h2>Логическая операция XOR (исключающее ИЛИ)</h2>
12
<h2>Логическая операция XOR (исключающее ИЛИ)</h2>
13
<p>Оператор XOR обозначается ^.</p>
13
<p>Оператор XOR обозначается ^.</p>
14
<p><strong>XOR</strong>выполняется с 2-мя битами (a и b). Результат выполнения операции XOR (<strong>исключающее ИЛИ</strong>) равен 1, когда один из битов b или a равен 1. В остальных ситуациях результат применения оператора XOR равен 0.</p>
14
<p><strong>XOR</strong>выполняется с 2-мя битами (a и b). Результат выполнения операции XOR (<strong>исключающее ИЛИ</strong>) равен 1, когда один из битов b или a равен 1. В остальных ситуациях результат применения оператора XOR равен 0.</p>
15
<p>Таблица истинности логической операции для XOR (исключающее ИЛИ) выглядит так:</p>
15
<p>Таблица истинности логической операции для XOR (исключающее ИЛИ) выглядит так:</p>
16
<p>Используя XOR (исключающее ИЛИ), вы можете поменять значения 2-х переменных одинакового типа данных, не используя временную переменную. А ещё, посредством XOR можно зашифровать текст, например:</p>
16
<p>Используя XOR (исключающее ИЛИ), вы можете поменять значения 2-х переменных одинакового типа данных, не используя временную переменную. А ещё, посредством XOR можно зашифровать текст, например:</p>
17
String msg = "This is a message"; char[] message = msg.toCharArray(); String key = ".*)"; String encryptedString = new String(); for(int i = 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray()[i%key.length()]; }<p>Согласен, XOR - далеко не самый надёжный метод шифрования, но это не значит, что его нельзя сделать частью какого-либо шифровального алгоритма.</p>
17
String msg = "This is a message"; char[] message = msg.toCharArray(); String key = ".*)"; String encryptedString = new String(); for(int i = 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray()[i%key.length()]; }<p>Согласен, XOR - далеко не самый надёжный метод шифрования, но это не значит, что его нельзя сделать частью какого-либо шифровального алгоритма.</p>
18
<h2>Логическая операция NOT (НЕ)</h2>
18
<h2>Логическая операция NOT (НЕ)</h2>
19
<p>Это побитовое отрицание, поэтому выполняется с одним битом и обозначается ~.</p>
19
<p>Это побитовое отрицание, поэтому выполняется с одним битом и обозначается ~.</p>
20
<p>Результат зависит от состояния бита. Если он в нулевом состоянии, то итог операции - единица и наоборот. Всё предельно просто.</p>
20
<p>Результат зависит от состояния бита. Если он в нулевом состоянии, то итог операции - единица и наоборот. Всё предельно просто.</p>
21
<p>Эти 4 логические операции следует запомнить в первую очередь, т. к. с их помощью можно получить практически любой возможный результат. Также существуют такие операции, как << (побитовый сдвиг влево) и >> (побитовый сдвиг вправо).</p>
21
<p>Эти 4 логические операции следует запомнить в первую очередь, т. к. с их помощью можно получить практически любой возможный результат. Также существуют такие операции, как << (побитовый сдвиг влево) и >> (побитовый сдвиг вправо).</p>
22
22