Найти в Дзене
Просто о сложном

Бинарная (двоичная) логика.

Оглавление

Доброго всем времени суток! Перед тем как начинать статью про принципы работы и построения процессоров, хотелось бы рассказать о бинарном счислении, которое, собственно, используется в компьютерной логике.

Чем бинарное отличается от привычного нам десятичного?

Давайте вспомним какие цифры мы используем при записи чисел. Цифр всего десять, начинаются с нуля и кончаются девяткой (десять это уже составное число). Такая, привычная нам, запись цифр и чисел называется десятичной (по количеству цифр). Что мы делаем когда в привычной нам системе кончаются цифры для записи — правильно, пишем 1(количество десяткой) и возле неё 0(количество цифр после десятка), так получается составное число 10.

А теперь давайте посмотрим на цифры которые знает логический блок процессора — это 0 и 1, всё остальное он записывает с помощью их комбинаций. Да — именно так, в двоичной системе нет символа уже для двойки, а значит при записи используются комбинации существующих, но с немного другим принципом. Бинарные числа строятся по похожей с десятичными схеме, но здесь играют роль разряды — как только разряд достигает своего максимума (единицы) появляется новый разряд (слева), а старый обнуляется.
0 = 0
1 = 1
10 = 2
11 = 3
100 = 4
101 = 5
110 = 6
111 = 7
1000 = 8
1001 = 9

Для справки: символы двоичной системы в логических схемах могут обозначать не только как 0 и 1, а как «истина» и «ложь», или «вкл» и «выкл» .

Перевод из бинарной в десятичную и обратно.

Для получения числа в бинарной системе необходимо воспользоваться делением на 2 с остатком. Приведём пример — есть число 254 в десятичной системе и его необходимо «превратить» в правильный набор ноликов и единиц. Сначала поделим всё на 2, до тех пор, пока не получим 0:

254 / 2 = 127 (остаток 0) [7]
127 / 2 = 63 (остаток 1) [6]
63 / 2 = 31 (остаток 1) [5]
31 / 2 = 15 (остаток 1) [4]
15 / 2 = 7 (остаток 1) [3]
7 / 2 = 3 (остаток 1) [2]
3 / 2 = 1 (остаток 1) [1]
1 / 2 = 0 (остаток 1) [0]

Примечание: в двоичной системе принято считать разряды с нуля, соответственно первым разрядом оказывается нулевой, вторым — первым и т.д.

А теперь собираем всё с последнего остатка — получаем число 11111110. Для наглядности в примере сверху в квадратных скобках указан порядок сборки двоичного числа.

Для справки: 1 разряд равен одному биту, число из восьми разрядов - одному байту. Максимальное число хранимое в одном байте 255 (11111111 в бинарной системе).

В двоичную систему число перевели, а как переводить обратно? Если бы деление, значит умножением. Умножать надо каждую цифру числа на двойку в степени разряда, после чего сложить все результаты умножения. Приведём пример — есть число 11010101 и его надо из бинарной системы перевести в привычную нам десятичную:

Разложим число на разряды (для удобства подпишем номер разряда в квадратных скобках) 1[7] 1[6] 0[5] 1[4] 0[3] 1[2] 0[1] 1[0] . Теперь произведём умножение и сложим результаты:
1*(2^7)+1*(2^6)+0*(2^5)+1*(2^4)+0*(2^3)+1*(2^2)0*(2^1)+1*(2^0) =
= 128 + 64 + 0 + 16 + 0 + 4 + 0 +1 = 213

Примечание: возведение в степень в данной статье обозначено символом ^ . Пример: (2^2) — это два во второй степени, (5^4) — пять в четвёртой степени.

Мы получили десятичное число 213 — именно оно равно двоичному 11010101, можно провести обратный перевод, для проверки и закрепления знаний:
213 / 2 = 106 (остаток 1) [7]
106 / 2 = 53 (остаток 0) [6]
53 / 2 = 26 (остаток 1) [5]
26 / 2 = 13 (остаток 0) [4]
13 / 2 = 6 (остаток 1) [3]
6 / 2 = 3 (остаток 0) [2]
3 / 2 = 1 (остаток 1) [1]
1 / 2 = 0 (остаток 1) [0]

Отмечаем номера разрядов (напоминаем, они начинаются с нуля) и собираем число 11010101 — всё выполнено верно, это число мы и переводили в десятичную систему.

Простейшие элементы компьютерной логики.

Что такое двоичная система и как переводить в неё привычные нам числа мы узнали, теперь поговорим о простейших логических конструкциях с которыми работает процессор.

Для справки: в процессорах используется именно двоичная логика из-за принципа их работы. 1 — означает наличие напряжения (тока) на определённом элементе (о которых мы поговорим, когда будем разбирать АЛУ и регистры процессора), 0 — означает, что напряжения на элементе нет. Подробнее об этом будет рассказано в статьях про логические конструкции и работу процессора.

Простейших логических конструкций всего три: «И» «ИЛИ» «НЕ», мы будем обозначать их английскими буквами, для большего удобства и дальнешего понимания работы сложных логических элементов: «AND» «OR» «NOT».

Поговорим о каждой из этих конструкций:

Примечание: цифры 1 и 0 в логических конструкциях стоящих до знака равенства называются операндами.

Конструкция AND возвращает 1 (истина) когда оба входных операнда равны 1, во всех остальных случаях возвращается 0 (ложь).
Примеры:
1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0

Конструкция OR возвращает 1 (истина) когда один из входных операндов равен 1, в случае когда оба операнда равны нулю, возвращается 0 (ложь).
Примеры:
1 OR 1 = 1
1 OR 0 = 1
0 OR 1 = 1
0 OR 0 = 0

Конструкция NOT возвращает обратное значение операнда.
Примеры:
NOT 1 = 0
NOT 0 = 1

Для упрощения вычислений сложных составных логических конструкций используются таблицы истинности. Приведём пример составления таблицы для конструкции (NOT A) OR (NOT B) AND (A OR B)

Первым делом надо понять в какой последовательности выполняются логические вычисления:
1. Действия в скобках
2. Отрицание (NOT)
3. Конъюнкция (AND)
4. Дизъюнкция (OR)

Приступим к созданию таблицы — первые два (в данном случае) столбца будут отданы переменным (A и B). Следующие столбы строятся по порядку действий в конструкции.

Цифры в скобках на последней строке обозначают номер действия.
Цифры в скобках на последней строке обозначают номер действия.

Из этой таблицы мы получаем, что выражение истинно при операндах:
A = 1 B = 0
A = 0 B = 1
A =0 B = 0

На сегодня эта вся информация о бинарной логике, больше и подробнее мы затронем её при полном разборе работы процессора и логических устройств.

Огромное спасибо за прочтение данной статьи, надеюсь она была полезна для вас. Буду безмерно рад и благодарен за лайк, подписку и конструктивную критику в комментариях!

А по этой ссылке можно вступить в наш Яндекс.Чат где мы сможем пообщаться, помочь вам разобраться с вашей техникой и просто пообсуждать новости из прекрасного мира IT.