Замечание 1
Если вы хотите перевести число из одной системы счисления в другую, то удобнее для начала перевести его в десятичную систему счисления, и уже только потом из десятичной перевести в любую другую систему счисления.
В вычислительной технике, использующей машинную арифметику, большую роль играет преобразование чисел из одной системы счисления в другую. Ниже приведем основные правила таких преобразований (переводов).
При переводе двоичного числа в десятичное требуется представить двоичное число в виде многочлена , каждый элемент которого представлен в виде произведения цифры числа и соответствующей степени числа основания, в данном случае $2$, а затем нужно вычислить многочлен по правилам десятичной арифметики:
$X_2=A_n \cdot 2^{n-1} + A_{n-1} \cdot 2^{n-2} + A_{n-2} \cdot 2^{n-3} + ... + A_2 \cdot 2^1 + A_1 \cdot 2^0$
Рисунок 1. Таблица 1
Пример 1
Число $11110101_2$ перевести в десятичную систему счисления.
Решение. Используя приведенную таблицу $1$ степеней основания $2$, представим число в виде многочлена:
$11110101_2 = 1 \cdot 27 + 1 \cdot 26 + 1 \cdot 25 + 1 \cdot 24 + 0 \cdot 23 + 1 \cdot 22 + 0 \cdot 21 + 1 \cdot 20 = 128 + 64 + 32 + 16 + 0 + 4 + 0 + 1 = 245_{10}$
Для перевода числа из восьмеричной системы счисления в десятичную требуется представить его в виде многочлена, каждый элемент которого представлен в виде произведения цифры числа и соответствующей степени числа основания, в данном случае $8$, а затем нужно вычислить многочлен по правилам десятичной арифметики:
$X_8 = A_n \cdot 8^{n-1} + A_{n-1} \cdot 8^{n-2} + A_{n-2} \cdot 8^{n-3} + ... + A_2 \cdot 8^1 + A_1 \cdot 8^0$
Рисунок 2. Таблица 2
Пример 2
Число $75013_8$ перевести в десятичную систему счисления.
Решение. Используя приведенную таблицу $2$ степеней основания $8$, представим число в виде многочлена:
$75013_8 = 7\cdot 8^4 + 5 \cdot 8^3 + 0 \cdot 8^2 + 1 \cdot 8^1 + 3 \cdot 8^0 = 31243_{10}$
Для перевода числа из шестнадцатеричной системы счисления в десятичную необходимо его представить в виде многочлена, каждый элемент которого представлен в виде произведения цифры числа и соответствующей степени числа основания, в данном случае $16$, а затем нужно вычислить многочлен по правилам десятичной арифметики:
$X_{16} = A_n \cdot 16^{n-1} + A_{n-1} \cdot 16^{n-2} + A_{n-2} \cdot 16^{n-3} + ... + A_2 \cdot 16^1 + A_1 \cdot 16^0$
Рисунок 3. Таблица 3
Пример 3
Число $FFA2_{16}$ перевести в десятичную систему счисления.
Решение. Используя приведенную таблицу $3$ степеней основания $8$, представим число в виде многочлена:
$FFA2_{16} = 15 \cdot 16^3 + 15 \cdot 16^2 + 10 \cdot 16^1 + 2 \cdot 16^0 =61440 + 3840 + 160 + 2 = 65442_{10}$
Пример 4
Число $22_{10}$ перевести в двоичную систему счисления.
Решение:
Рисунок 4.
$22_{10} = 10110_2$
Пример 5
Число $571_{10}$ перевести в восьмеричную систему счисления.
Решение:
Рисунок 5.
$571_{10} = 1073_8$
Пример 6
Число $7467_{10}$ перевести в шестнадцатеричную систему счисления.
Решение:
Рисунок 6.
$7467_{10} = 1D2B_{16}$
Для того чтобы перевести правильную дробь из десятичной системы счисления в недесятичную, необходимо дробную часть преобразуемого числа последовательно умножить на основание той системы, в которую ее требуется перевести. Дробь в новой системе будет представлена в виде целых частей произведений, начиная с первого.
Например: $0,3125_{(10)}$ в восьмеричной системе счисления будет выглядеть как $0,24_{(8)}$.
В данном случае можно столкнуться с проблемой, когда конечной десятичной дроби может соответствовать бесконечная (периодическая) дробь в недесятичной системе счисления. В данном случае количество знаков в дроби, представленной в новой системе, будет зависеть от требуемой точности. Также нужно отметить, что целые числа остаются целыми, а правильные дроби - дробями в любой системе счисления.
Рисунок 7. Таблица 4
Пример 7
Число $1001011_2$ перевести в восьмеричную систему счисления.
Решение . Используя таблицу 4, переведем число из двоичной системы счисления в восьмеричную:
$001 001 011_2 = 113_8$
Можно вводить как целые числа, например 34 , так и дробные, например, 637.333 . Для дробных чисел указывается точность перевода после запятой.
Вместе с этим калькулятором также используют следующие:
Пример №1
.
Перевод из 2 в 8 в 16 системы счисления.
Эти системы кратны двум, следовательно, перевод осуществляется с использованием таблицы соответствия (см. ниже).
Для перевода числа из двоичной системы счисления в восьмиричную (шестнадцатиричную) необходимо от запятой вправо и влево разбить двоичное число на группы по три (четыре – для шестнадцатиричной) разряда, дополняя при необходимости нулями крайние группы. Каждую группу заменяют соответствующей восьмиричной или шестнадцатиричной цифрой.
Пример №2
. 1010111010,1011 = 1.010.111.010,101.1 = 1272,51 8
здесь 001=1; 010=2; 111=7; 010=2; 101=5; 001=1
При переводе в шестнадцатеричную систему необходимо делить число на части, по четыре цифры, соблюдая те же правила.
Пример №3
. 1010111010,1011 = 10.1011.1010,1011 = 2B12,13 HEX
здесь 0010=2; 1011=B; 1010=12; 1011=13
Перевод чисел из 2 , 8 и 16 в десятичную систему исчисления производят путем разбивания числа на отдельные и умножения его на основание системы (из которой переводится число) возведенное в степень соответствующую его порядковому номеру в переводимом числе. При этом числа нумеруются влево от запятой (первое число имеет номер 0) с возрастанием, а в правую сторону с убыванием (т.е. с отрицательным знаком). Полученные результаты складываются.
Пример №4
.
Пример перевода из двоичной в десятичную систему счисления.
1010010,101 2 = 1·2 6 +0·2 5 +1·2 4 +0·2 3 +0·2 2 +1·2 1 +0·2 0 + 1·2 -1 +0·2 -2 +1·2 -3 =
= 64+0+16+0+0+2+0+0.5+0+0.125 = 82.625 10
Пример перевода из восьмеричной в десятичную систему счисления.
108.5 8 = 1*·8 2 +0·8 1 +8·8 0 + 5·8 -1 = 64+0+8+0.625 = 72.625 10
Пример перевода из шестнадцатеричной в десятичную систему счисления.
108.5 16 = 1·16 2 +0·16 1 +8·16 0 + 5·16 -1 = 256+0+8+0.3125 = 264.3125 10
Еще раз повторим алгоритм перевода чисел из одной системы счисления в другую ПСС
Двоичная СС | Шестнадцатеричная СС |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
1111 | F |
Таблица для перевода в восьмеричную систему счисления
В двоичной системе счисления используются всего две цифры 0 и 1. Другими словами, двойка является основанием двоичной системы счисления. (Аналогично у десятичной системы основание 10.)
Чтобы научиться понимать числа в двоичной системе счисления, сначала рассмотрим, как формируются числа в привычной для нас десятичной системе счисления.
В десятичной системе счисления мы располагаем десятью знаками-цифрами (от 0 до 9). Когда счет достигает 9, то вводится новый разряд (десятки), а единицы обнуляются и счет начинается снова. После 19 разряд десятков увеличивается на 1, а единицы снова обнуляются. И так далее. Когда десятки доходят до 9, то потом появляется третий разряд – сотни.
Двоичная система счисления аналогична десятичной за исключением того, что в формировании числа участвуют всего лишь две знака-цифры: 0 и 1. Как только разряд достигает своего предела (т.е. единицы), появляется новый разряд, а старый обнуляется.
Попробуем считать в двоичной системе:
0 – это ноль
1 – это один (и это предел разряда)
10 – это два
11 – это три (и это снова предел)
100 – это четыре
101 – пять
110 – шесть
111 – семь и т.д.
Не трудно заметить, что в двоичной системе счисления длины чисел с увеличением значения растут быстрыми темпами. Как определить, что значит вот это: 10001001? Непривычный к такой форме записи чисел человеческий мозг обычно не может понять сколько это. Неплохо бы уметь переводить двоичные числа в десятичные.
В десятичной системе счисления любое число можно представить в форме суммы единиц, десяток, сотен и т.д. Например:
1476 = 1000 + 400 + 70 + 6
1476 = 1 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0
Посмотрите на эту запись внимательно. Здесь цифры 1, 4, 7 и 6 - это набор цифр из которых состоит число 1476. Все эти цифры поочередно умножаются на десять возведенную в ту или иную степень. Десять – это основание десятичной системы счисления. Степень, в которую возводится десятка – это разряд цифры за минусом единицы.
Аналогично можно разложить и любое двоичное число. Только основание здесь будет 2:
10001001 = 1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0
1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137
Т.е. число 10001001 по основанию 2 равно числу 137 по основанию 10. Записать это можно так:
10001001 2 = 137 10
Дело в том, что двоичная система счисления – это язык вычислительной техники. Каждая цифра должна быть как-то представлена на физическом носителе. Если это десятичная система, то придется создать такое устройство, которое может быть в десяти состояниях. Это сложно. Проще изготовить физический элемент, который может быть лишь в двух состояниях (например, есть ток или нет тока). Это одна из основных причин, почему двоичной системе счисления уделяется столько внимания.
Может потребоваться перевести десятичное число в двоичное. Один из способов – это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись.
Перевод чисел из одной системы счисления в другую составляет важную часть машинной арифметики. Рассмотрим основные правила перевода.
1. Для перевода двоичного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 2, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней двойки:
Таблица 4. Степени числа 2
n (степень) |
|||||||||||
Пример.
2. Для перевода восьмеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 8, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней восьмерки:
Таблица 5. Степени числа 8
n (степень) |
|||||||
Пример. Число перевести в десятичную систему счисления.
3. Для перевода шестнадцатеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 16, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней числа 16:
Таблица 6. Степени числа 16
n (степень) |
|||||||
Пример. Число перевести в десятичную систему счисления.
4. Для перевода десятичного числа в двоичную систему его необходимо последовательно делить на 2 до тех пор, пока не останется остаток, меньший или равный 1. Число в двоичной системе записывается как последовательность последнего результата деления и остатков от деления в обратном порядке.
Пример. Число перевести в двоичную систему счисления.
5. Для перевода десятичного числа в восьмеричную систему его необходимо последовательно делить на 8 до тех пор, пока не останется остаток, меньший или равный 7. Число в восьмеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.
Пример. Число перевести в восьмеричную систему счисления.
6. Для перевода десятичного числа в шестнадцатеричную систему его необходимо последовательно делить на 16 до тех пор, пока не останется остаток, меньший или равный 15. Число в шестнадцатеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.
Пример. Число перевести в шестнадцатеричную систему счисления.
Привет, посетитель сайта сайт! Продолжаем изучать и протокол сетевого уровня IP, а если быть более точным, то его версию IPv4. На первый взгляд тема двоичных чисел и двоичной системы счисления не имеет отношения к протоколу IP, но если вспомнить, что компьютеры работают с нулями и единицами, то оказывается, что двоичная система и ее понимание — это основа основ, нам нужно научиться переводить числа из двоичной системы счисления в десятичную и наоборот: из десятичной в двоичную . Это нам поможет лучше понять протокол IP, а также принцип работы масок сети переменной длины. Давайте приступать!
Если тема компьютерных сетей вам интересна, то можете ознакомиться с другими записями курса.
Прежде чем мы начнем, стоит вообще объяснить зачем нужна эта тема сетевому инженеру. Хотя вы могли убедиться в ее необходимости, когда мы говорили , но, вы можете сказать, что есть IP-калькуляторы, которые существенно облегчают задачу по распределению IP-адресов, вычислению нужных масок подсетей/сетей и определению номера сети и номера узла в IP-адресе. Так-то оно так, но IP-калькулятор не всегда под рукой, это причина номер раз. Причина номер два заключается в том, что на экзаменах Cisco вам не дадут IP-калькулятор и все преобразования IP-адресов из десятичной системы счисления в двоичную вам придется делать на листе бумаги , а вопросов, где это требуется на экзамене/экзаменах по получению сертификата CCNA не так уж и мало, будет обидно, если из-за такой мелочи экзамен будет завален. Ну и наконец понимания двоичной системы счисления ведет к лучшему пониманию принципа работы .
Вообще сетевой инженер не обязан уметь делать перевод чисел из двоичной системы счисления в десятичную и наоборот в уме. Более того, это редко кто умеет делать в уме, в основном к такой категории относятся преподаватели различных курсов по компьютерным сетям, так как они сталкиваются с этим постоянно изо дня в день. Но при помощи листа бумаги и ручки вам стоит научиться осуществлять перевод.
Давайте начнем с простого и поговорим про двоичные цифры и числа , вы же знаете, что цифры и числа – это две разные вещи. Цифра – это специальный символ для обозначения, а число – это абстрактная запись, означающая количество. Например, чтобы записать, что у нас пять пальцев на руке мы можем использовать римские и арабский цифры: V и 5. В данном случае пять является одновременно и числом, и цифрой. А, например, для записи числа 20 мы используем две цифры: 2 и 0.
Итого, в десятичной системе счисления у нас есть десять цифр или десять символов (0,1,2,3,4,5,6,7,8,9), комбинируя которые мы можем записывать различные числа. Каким принципом мы руководствуемся, используя десятичную систему счисления? Да все очень просто, мы возводим десятку в ту или иную степень, для примера возьмём число 321. Как его можно записать по-другому, да вот так: 3*10 2 +2*10 1 +1*10 0 . Таким образом получается, что число 321 представляет собой три разряда:
То есть в данной записи двойка это не просто двойка, а две десятки или два раза по десять. А тройка это не просто тройка, а три раза по сто. Получается такая зависимость: единица каждого следующего разряда в десять раз больше единицы предыдущего, ведь, что такое 300 – это три раза по сто. Отступление по поводу десятичной системы счисление было нужно, чтобы проще понять двоичную.
В двоичной системе счисления всего две цифры: 0 и 1 . Поэтому запись числа в двоичной системе зачастую гораздо больше, чем в десятичной. За исключением чисел 0 и 1, ноль в двоичной системе счисления равен нулю в десятичной, аналогично и для единицы. Иногда, чтобы не перепутать в какой системе счисления записано число, используют суб-индексы: 267 10 , 10100 12 , 4712 8 . Число в суб-индексе указывает на систему счисления.
Для записи двоичных чисел могут быть использованы символы 0b и &(амперсанд): 0b10111, &111 . Если в десятичной системе счисления, чтобы произнести число 245 мы воспользуемся вот такой конструкцией: двести сорок пять, то в двоичной системе счисления чтобы назвать число, нам нужно произнести цифру из каждого разряда, например, число 1100 в двоичной системе счисления следует произносить не как тысяча сто, а как один, один, ноль, ноль. Давайте посмотрим на запись чисел от 0 до 10 в двоичной системе счисления:
Думаю, логика должна быть уже понятна. Если в десятичной системе счисления для каждого разряда у нас было доступно десять вариантов (от 0 до 9 включительно), то в двоичной системе счисления в каждом из разрядов двоичного числа у нас только два варианта: 0 или 1 .
Для работы с IP-адресами и масками подсети нам достаточно натуральных чисел в двоичной системе счисления, хотя двоичная система позволяет записывать дробные и отрицательные числа, но нам это без надобности .
Давайте лучше разберемся с тем, как преобразовать число из десятичной системы счисления в двоичную . И тут все на самом деле очень и очень просто, хотя на словах объяснить трудно, поэтому сразу приведу пример преобразования чисел из десятичной системы счисления в двоичную . Возьмем число 61, чтобы выполнить преобразование в двоичную систему, нам нужно это число делить на два и смотреть, что получается в остатке от деления. А результат деления снова делить на два. В данном случае 61 – это делимое, в качестве делителя у нас всегда будет двойка, а частное (результат деления) мы делим снова на два, продолжаем деление до тех пор, пока в частном не окажется 1, эта последняя единица и будет крайним левым разрядом. Рисунок ниже это демонстрирует.
При этом обратите внимание, что число 61, это не 101111, а 111101, то есть выписываем результат с конца. Единицу в последнем частном смысла делить на два нет, поскольку в данном случае используется целочисленное деление, а при таком подходе получается так, как на Рисунке 4.4.2.
Это не самый быстрый способ перевода числа из двоичной системы счисления в десятичную
. У нас есть несколько ускорителей. Например, число 7 в двоичной системе записывается как 111, число 3 как 11, а число 255 как 11111111. Все эти случаи до безобразия просты. Дело в том, что числа 8, 4, и 256 являются степенями двойки, а числа 7, 3 и 255 на единицу меньше этих чисел. Так вот для числа, которые на единицу меньше, чем число равное степени двойки, действует простое правило: в двоичной системе такое десятичное число записывается количеством единиц равным степени двойки. Так, например, число 256 это два в восьмой степени, следовательно, 255 записывается как 11111111, а число 8 это два в третьей степени, а это говорит нам о том, что 7 в двоичной системе счисления будет записано как 111. Ну а понять, как записать 256, 4 и 8 в двоичной системе счисления тоже не трудно, достаточно просто прибавить единицу: 256 = 11111111 + 1 = 100000000; 8 = 111 + 1 = 1000; 4 = 11 + 1 = 100.
Любой свой результат вы можете проверить на калькуляторе и по началу лучше так и делать.
Как видим, делить мы еще не разучились. И теперь можем двигаться дальше.
Преобразование чисел из двоичной системы счисления выполняется гораздо проще, чем перевод из десятичной в двоичную. В качестве примера перевода будем использовать число 11110. Обратите внимание на табличку ниже, она показывает степень, в которую нужно возвести двойку, чтобы потом в итоге получить десятичное число.
Чтобы из этого двоичной числа получить десятичное, нужно каждое число в разряде умножить на два в степени, а затем сложить результаты перемножения, проще показать:
1*2 4 +1*2 3 +1*2 2 +1*2 1 +0*2 0 = 16+8+4+2+0=30
Откроем калькулятор и убедимся, что 30 в десятичной системе счисления, это 11110 в двоичной.
Видим, что всё сделано верно. Из примера видно, что перевод числа из двоичной системы счисления в десятичную выполняется куда проще, чем обратный перевод . Чтобы уверенно работать с нужно лишь помнить степени двойки до 2 8 . Для наглядности приведу таблицу.
Нам больше и не нужно, поскольку максимально возможное число, которое можно записать в один байт (8 бит или восемь двоичных значений) равно 255, то есть в каждом октете IP-адреса или маски подсети протокола IPv4 максимально возможное значение — 255. В есть поля, в которых есть значения больше 255, но их нам рассчитывать не нужно.
Давайте теперь посмотрим на операции, которые можно выполнять с двоичными числами . Начнем с простых арифметических операций, а затем перейдем к операциям булевой алгебры.
Складывать двоичные числа не так уж сложно: 1+0 =1; 1+1=0 (в дальнейшем дам пояснение); 0+0=0. Это были простые примеры, где использовался лишь один разряд, давайте посмотрим на примеры, где количество разрядов больше, чем один.
101+1101 в десятичной системе это будет 5 + 13 = 18. Давайте посчитаем в столбик.
Результат выделен оранжевым цветом, калькулятор говорит, что мы посчитали верно, можете проверить. Теперь давайте смотреть почему так получилось, ведь вначале я написал, что 1+1=0, но это для случая, когда у нас есть только один разряд, для случаев, когда разрядов больше, чем один, 1+1=10 (или два в десятичной), что логично.
Тогда смотрите, что получается, мы выполняем сложения по разрядам справа налево:
1. 1+1=10, записываем ноль, а единица уходит в следующий разряд.
2. В следующем разряде получается 0+0+1=1 (эта единица пришла к нам из результата сложения на шаге 1).
4. Тут у нас есть единица только у второго числа, но сюда еще перенеслась, поэтому 0+1+1 = 10.
5. Склеиваем всё воедино:10|0|1|0.
Если лень в столбик, то давайте считать так: 101011+11011 или 43 + 27 = 70. Как тут можно поступить, а давайте смотреть, ведь нам никто не запрещает делать преобразования, а от перемены мест слагаемых сумма не меняется, для двоичной системы счисления это правило также актуально.
Можете проверить калькулятором, 1000110 в двоичной системе счисления это 70 в десятичной.
Сразу пример для вычитания одноразрядных чисел в двоичной системе счисления , про отрицательные числа мы не говорили, поэтому 0-1 не берем в расчет: 1 – 0 = 1; 0 – 0 = 0; 1 – 1 = 0. Если разрядов больше чем один, то тоже все просто, даже никаких столбиков и ухищрений не нужно: 110111 – 1000, это то же самое, что и 55 – 8. В результате мы получим 101111. И биться сердце перестало, откуда единица в третьем разряде (нумерация слева направо и начинается с нуля)? Да всё просто! Во втором разряде числа 110111 стоит 0, а в первом разряде стоит 1 (если примем, что нумерация разрядов начинается с 0 и идет слева направо), но единица четвертого разряда получается путем сложения двух единиц третьего разряда (получается этакая виртуальная двойка) и от этой двойки мы отнимаем единицу, которая стоит в нулевом разряде числа 1000, ну а 2 — 1 = 1, ну а 1 является допустимой цифрой в двоичной системе счисления.
Нам осталось рассмотреть умножение двоичных чисел, которое реализует за счет сдвига на один разряд влево . Но для начала давайте посмотрим на результаты одноразрядного умножения: 1*1 = 1; 1*0=0 0*0=0. Собственно, всё просто, теперь давайте посмотрим на что-нибудь более сложное. Возьмем числа 101001 (41) и 1100 (12). Умножать будем столбиком.
Если из таблицы непонятно как так получилось, то попробую объяснить словами:
В общем-то, операция умножения не такая уж и сложная, нужно лишь немного попрактиковаться.
В булевой алгебре есть два очень важных понятия: true (истина) и false (ложь), эквивалентом для них служат ноль и единица в двоичной системе счисления. Операторы булевой алгебры расширяют количество доступных операторов над этими значениями, давайте на них посмотрим.
Операция «Логическое И» или AND эквивалентно умножению одноразрядных двоичных чисел.
1 AND 1 = 1; 1 AND 0 = 1; 0 AND 0 = 0; 0 AND 1 = 0.
1 AND 1 = 1 ; 1 AND 0 = 1 ; 0 AND 0 = 0 ; 0 AND 1 = 0. |
Единица в результате «Логического И» будет только в том случае, если оба значения равны единицы, во всех остальных случаях будет ноль.
Операция «Логическое ИЛИ» или OR работает по следующему принципу: если хотя бы одно значение равно единице, то в результате будет единица.
1 OR 1 = 1; 1 OR 0 = 1; 0 OR 1 = 1; 0 OR 0 = 0.
1 OR 1 = 1 ; 1 OR 0 = 1 ; 0 OR 1 = 1 ; 0 OR 0 = 0. |
Операция «Исключающее ИЛИ» или XOR даст нам в результате единицу только в том случае, если один из операндов равен единице, а второй равен нулю. Если оба операнда равны нулю, будет ноль и даже если оба операнда равны единице, в результате получится ноль.