Электроника?.. Нет ничего проще! - Жан-Поль Эймишен
Шрифт:
Интервал:
Закладка:
Н. — Иначе говоря, одиннадцати.
Л. — Браво, Незнайкин. Ты очень хорошо усвоил двоичную систему счисления. Следовательно, число В мы должны записать в следующем виде:
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…
Н. — Это становится ужасно сложно, и я ровным счетом ничего не понимаю!
Л. — Тогда рассмотрим более подробно. Как ты видишь, на выходе а (единицы) регистра СР1 мы имеем нуль, а на выходе b (двойки) — цифру 1, на выходе с (четверки) — нуль, а на выходах d и e (соответственно восьмерки и шестнадцатки) по цифре 1.
Первоначально на выходе а (единицы) регистра СР2 находится цифра 1. Следовательно, первый тактовый импульс пройдет через элемент И, обозначенный буквой G1. Отсюда он придет на правые входы всех других элементов И, обозначенных буквами q1, g2….g6. В связи с наличием записанного на регистре СР1 числа тактовый импульс не пройдет на выход элемента g1, пройдет на выход g2, не пройдет на выход g3 и пройдет на выходы элементов g4 и g5. Надеюсь, на этот раз ты меня понял?
Н. — Это ужасно сложно, но, призвав на помощь все мои интеллектуальные ресурсы, я сумел более или менее понять.
Л. — Ты убедишься, что дальнейшее не сложнее того, в чем тебе удалось разобраться. Как ты видишь, первый тактовый импульс запишет на сдвигающем регистре СР3 множимое без каких бы то ни было изменений. После окончания этого импульса элемент задержки D (время задержки которого меньше интервала между двумя тактовыми импульсами) посылает сдвигающий импульс через линию Z1 на регистр СР1 через линию Z2 на регистр СР2. От этого импульса записанное на регистре СР1 число сдвигается на один разряд влево, иначе говоря, теперь на регистре записано число 110100, с которым мы уже встречались. Число, записанное на регистре СР2, тоже смещается на один разряд влево, иначе говоря, цифра двоек (нуль) теперь подается на верхний вход элемента G1.