Электроника?.. Нет ничего проще! - Эймишен Жан-Поль (библиотека книг бесплатно без регистрации txt) 📗
Н. — Хорошо, теперь я более или менее умею складывать. Но скажи, пожалуйста, как производят вычитание?
Л. — Обычно проблему обходят. Предположи, что нам нужно из числа А вычесть число В. Для начала к А прибавляем одну единицу, а затем прибавляют противоположное В число (его также называют дополнением к В) и при этом сложении не учитывают переноса.
Н. — Что ты называешь противоположным В числом?
Л. — Очень просто, это число, которое получается из числа В, если все его нули заменить единицами, а все его единицы нулями. Число В меньше А, и поэтому слева к нему нужно дописать несколько цифр. При преобразовании числа В в противоположное ему число все нули превращаются в единицы. Возьмем для большей наглядности числовой пример. Предположим, что А равно 101 101, (т. е. 45), а В равно 1011.
Н. — Иначе говоря, одиннадцати.
Л. — Браво, Незнайкин. Ты очень хорошо усвоил двоичную систему счисления. Следовательно, число В мы должны записать в следующем виде:
001 011,
чтобы оно, как и число А, состояло из шести знаков. В результате преобразования его в противоположное ему число получаем:
110 100.
А теперь позволь мне, Незнайкин, задать тебе один вопрос: что мы получим, если это противоположное число прибавим к числу В?
Н. — Я думаю, что это сложение не представляет труда везде, где в одном из чисел стоит 1, в другом числе стоит нуль. Поэтому сумма этих двух чисел будет равна шестизначному числу, где все цифры 1, т. е. мы получим 111111.
Л. — Браво, совершенно верно! А теперь прибавь к полученному результату одну единицу.
Н. — Хорошо, если я прибавлю эту единицу, то сумма единиц даст нам нуль. Я переношу 1 в следующий разряд, прибавив ее к имеющейся здесь 1, я должен записать нуль на месте двоек и запомнить 1… Хм, очень любопытно, в итоге я получу 1000000.
Л. — Правильно. Но теперь в твоем числе семь знаков. Если пренебречь последним переносом, у нас останется лишь нуль. Как ты видишь, в результате сложения противоположного В числа и единицы даст нам нечто эквивалентное — В. Следовательно, для получения нужного результата мне достаточно прибавить это число к числу А. Операция имеет следующий вид:
Н. — Я вижу, что в полученном результате слева стоит единица в скобках. Это несомненно появилось вследствие того, что ты не хочешь учитывать последний перенос.
Л. — Совершенно верно. Если теперь прибавить еще одну единицу, то в результате получим 100010. Преобразовав двоичное число в десятичное, получим 34, которое точно соответствует разности 45 и 11.
Н. — Должен признаться, что, не прибегая к двоичной системе счисления, я получил бы верный результат значительно быстрее!
Л. — Ты, может быть. Но электронные машины считают в двоичной системе счисления быстрее, чем в десятичной, даже если учитывать время, необходимое для преобразования.
Н. — Система автоматического счета положительно очень забавна. Не можешь ли ты объяснить мне, как производят умножение?
Л. — На этот раз ты проявляешь исключительную смелость. Схема устройства в самом деле довольно сложная.
Для начала я покажу тебе, как выглядит умножение двоичных чисел по правилам двоичной арифметики. Предположим, что нам нужно перемножить множимое 11010 (или 26) и множитель, равный 13…
Н. — Иначе говоря, 1101.
Л. — О! Ты действительно очень здорово преобразуешь десятичные числа в двоичные. Как ты видишь, наш множитель состоит из следующих слагаемых:
одна единица;
нуль двоек;
одна двойка в квадрате;
одна двойка в кубе.
Следовательно, для получения произведения, мы должны сложить следующие слагаемые:
единица, умноженная на множимое;
нуль, умноженный на это множимое, умноженное на два (иначе говоря, на множимое, к которому справа приписан нуль — 110100);
единица, умноженная на множимое, умноженное на четыре (иначе говоря на множимое, к которому справа приписали два нуля — 1101000);
единица, умноженная на множимое, умноженное на восемь (иначе говоря, на множимое, к которому справа приписали три дополнительных нуля — 11010000).
Следовательно, всю операцию умножения мы можем записать в следующем виде:
Н. — Теперь, когда я достаточно привык к двоичной системе счисления, твое умножение мне в точности напоминает операцию умножения, которую мне столько раз приходилось выполнять в десятичной системе счисления. Но больше всего меня смущает сложение частичных произведений. Я подозреваю, что выполнить эту операцию с помощью электронных схем окажется ужасно трудно.
Л. — Нет, сложность удается устранить благодаря широкому использованию сдвигающих регистров, о которых ты только что так презрительно отозвался. Вспомни, что эти схемы могут продвигать на один знак записанное число, т. е. умножать его на 2. Для этого в приведенной на рис. 130 схеме достаточно подать управляющий импульс на линию Z. Я полагаю, что теперь ты достаточно натренирован, чтобы смело приступить к ознакомлению с полной схемой умножителя, которую я изобразил на рис. 133. Множимое число мы записали на сдвигающем регистре СР1. Множимое расположено так, что справа находятся единица (а), а влево от них места занимают двойки (b), четверки (с), восьмерки (d) и т. д. Управляющий сигнал, поступающий в линию Z1, продвигает влево число, записанное на сдвигающем регистре CP1.
Рис. 133. Полная схема двоичного умножителя, в котором используются три сдвигающих регистра и генератор хронирующих импульсов. Буквой D обозначен элемент задержки импульсов.
Множитель записан на сдвигающем регистре СР2. На этот раз единицы мы разместили на самом левом крае, а вправо от них по порядку записали двойки и т. д. Поступающий в линию Z2 управляющий сигнал сдвигает записанное число (множитель) тоже влево. Сумма записывается на третьем сдвигающем регистре СР3, который работает только Как сумматор. Сдвигающие регистры СР1 и СР2 имеют достаточное количество входов и выходов, чтобы операцию можно было выполнить полностью.
Расположенный справа маленький прямоугольник обозначает генератор синхроимпульсов (или часы). Он задает ритм выполнения операции.
Рассмотрим, что происходит при приходе первого тактового импульса. Он может пройти через элемент И, обозначенный буквой G1, потому что цифра единиц записанного на сдвигающем регистре СР2 числа представляет собой 1. Состояние регистров СР1 и СР2 к моменту прихода первого тактового импульса я показал для тебя на схеме в скобках у выходов этих регистров. Здесь я воспользовался только что рассмотренным нами примером умножения двоичных чисел. В этих условиях первый импульс пройдет через элемент G1. Он поступит на все элементы g, расположенные между регистрами СР1 и СР3 и пройдет через те из этих элементов, которые на второй вход получают с регистра СР1 сигнал о наличии в соответствующем звене цифры 1…