А теперь, когда ты познакомился с основными принципами устройства счетчиков, мы вместе посмотрим, как эти познания используются для создания больших цифровых электронных вычислительных машин…
Н. — Сегодня ты на меня не рассчитывай. Я неправильно оценил возможности своего мозга и теперь рискую допустить просчеты, которые могут вызвать у тебя недовольство…
Беседа тринадцатая
ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ И ЭЛЕКТРОННАЯ ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
Электронные вычислительные машины имеют явно выраженный вкус к двоичной системе счисления, и наш молодой друг вынужден обучиться этой странной арифметической системе, признающей лишь нуль и единицу. Он быстро входит во вкус, что побуждает Любознайкина рассказать ему о логических элементах, которые манипулируют только нулями, единицами и их сочетаниями. Незнайкин без особого труда осваивает сдвигающий регистр — главный элемент электронных вычислительных машин. Однако этот пригодный для всех видов работы инструмент кажется несколько медлительным для выполнения сложений.
Любознайкин — Скажи мне, Незнайкин, чувствуешь ли ты сегодня себя в хорошей форме?
Незнайкин — Да, спасибо. Но почему ты спрашиваешь об этом? Уж не собираешься ли ты подвергнуть меня каким-нибудь ужасным испытаниям?
Л. — Для начала я научу тебя считать… по двоичной системе счисления.
Н. — А я полагал, что прошлый раз мы рассмотрели все связанные со счетом вопросы.
Л. — Тогда мы ознакомились с электронными решениями, а теперь нам предстоит заняться арифметикой.
Н. — Уф!
Л. — Не беспокойся, ты увидишь, что это очень просто Знаешь ли ты точно, что означает число 385?
Н. — Разумеется, 385 показывает, что число состоит из трех сотен, восьми десятков и пяти единиц.
Л. — Совершенно верно. Мы пользуемся десятичной системой счисления и поэтому можем сказать, что названное число представляет собой следующее выражение: трижды взятый квадрат основания (102) плюс 8 раз взятое основание в степени 1 (101), плюс пять единиц (100), т. е. 385 = 3·102 + 8· 101 + 5·100.
А теперь представь себе, что в качестве основания для счисления мы вместо 10 возьмем 2. Тогда достаточно пользоваться только двумя цифрами: 0 и 1. Как в этих условиях ты обозначишь количество, которое в десятичной системе счисления обозначается цифрой 2?
Н. — Я совсем не вижу выхода — ведь я могу пользоваться только цифрами 1 и 0.
Л. — И тем не менее это очень просто. Мы запишем это число в виде 1, после которой следует 0. В самом деле, наше число равно основанию 2 в степени 1 плюс нуль единиц. Поэтому его следует записать, как 1, после которой следует нуль.
Н. — Как же так! Ты написал 10 и говоришь, что это 2!
Л. — Я не написал 10, я написал 1 (единицу), после которой следует нуль. Теперь, когда мы отказались от десятичной арифметики и перешли на двоичную, это число уже не означает десять и читать его нужно не как десять, а как «один, нуль». А как в двоичной системе ты запишешь число, которое в десятичной системе обозначается цифрой 3?
Н. — Я несколько не уверен, но все же попробую. Раз это число представляет собой один раз взятое основание 2 в степени 1 плюс единица, то мне представляется, что его нужно записать в виде двух единиц, стоящих одна за другой.
Л. — Ты совершенно прав. А как записать число 4?
Н. — Не представляю.
Л. — И тем не менее это просто; число 4 не что иное как основание в квадрате. Поэтому это число нужно записать в виде 1, после которой следуют два нуля, чтобы показать, что оно представляет собой один раз взятое основание в квадрате, плюс нуль оснований в степени 1, плюс нуль единиц, т. е. 4 = 22 + 0·21 + 0·20.
Н. — Твоя двоичная арифметика не представляется мне выдающимся достижением. Нужно целых три цифры, чтобы написать число 4… Результат скорее стоит назвать плачевным.
Л. — He торопись с выводами, дорогой Незнайкин. Несомненно в двоичной системе счисления требуется большее, чем в привычной нам десятичной, количество цифр. В среднем для написания одного и того же числа нужно в 3 раза больше цифр. Но в двоичных числах используются лишь нули и единицы, что значительно упрощает действия с этими числами. Как ты, например, переведешь на десятичный язык написанное мною по двоичной системе число 1 101 101?[19]
Н. — Для начала я постараюсь не попасть в поставленную тобой ловушку и не скажу, что это один миллион сто одна тысяча сто один. А теперь я начну справа, полагая, что так легче справиться с поставленной задачей. Написанное число, как мы видим, содержит единицу, но оно не содержит основания, потому что его вторая справа цифра нуль; в то же время число содержит основание в квадрате, т. е. 4, и основание в кубе, потому что и третья и четвертая справа цифры — единицы. Затем можно сказать, что число не содержит основания в четвертой степени (это выражение равно 16), но содержит основание в пятой степени (т. е. 32) и основание в шестой степени (т. е. 64). Следовательно, написанное тобою число равно сумме названных чисел, а именно 64, 32, 8, 4 и 1; и на десятичном языке его следует назвать 109.
Л. — Превосходно, Незнайкин, ты прекрасно преобразовал это число. А сможешь ли ты теперь сделать сложение по правилам двоичной арифметики?
Н. — Вероятно, это довольно сложно, но я тем не менее готов попробовать.
Л. — Хорошо, вот тебе числа для сложения
Для облегчения твоей работы я над каждой колонкой расположил маленькие буковки: а обозначает единицы, b — двойки, с — четверки, d — восьмерки, е — шестнадцатки (прости мне этот неологизм, несколько напоминающий десятки), f — тридцать-двойки, g — шестьдесят-четверки и h — сто-двадцать-восьмерки. Теперь можно начинать[20].
Н. — Возьмусь за дело. Предполагаю, что здесь поступают, как в десятичной арифметике. Не так ли?
Л. — Совершенно верно, только в двоичной арифметике элементарное сложение цифр производится по другим правилам.
Н. — Так, смело вперед. В колонке единиц, обозначенной буквой а, мы имеем 1 вверху и нуль внизу. Я естественно предполагаю, что нуль плюс 1 дает 1 и записываю полученный результат под чертой. Правильно?
Л. — Очень хорошо, но сознайся, что этот случай был не очень сложным.
Н. — Охотно признаю, а теперь перейдем к обозначенной буквой b колонке двоек. Это сложение меня несколько смущает, в обоих числах здесь стоят нули.
Л. — Но это самый классический случай, он настолько прост, что проще не бывает. Какой бы арифметикой мы ни занимались, для меня нуль плюс нуль всегда дает нуль.
Н. — Очень логично, об этом следовало бы подумать. Итак, в сумме на месте двоек я записываю нуль. Переходим к четверкам, обозначенным буквой с. Здесь тоже нет ничего трудного: 1 вверху и нуль внизу дают в сумме 1, что и записываю под чертой. С восьмерками дело обстоит чуточку посложнее; вверху у нас 1 и внизу тоже 1, их сумма 2, а у меня нет цифры 2, чтобы записать полученный результат.
19
Иногда для исключения недоразумений указывают, в какой системе записано число, например: (1 101 101)2 — число в двоичной системе, (1 101 101)10 = 1 101 101 — число в десятичной системе — один миллион сто одна тысяча сто один. (
20
Двоичная и десятичная системы счисления относятся к так называемым позиционным системам счисления, в которых цифры имеют различные значения в зависимости от того, на каком месте в записи числа они стоят. Существуют непозиционные системы счисления, как, например, римские цифры. В этой системе смысл каждого символа не зависит от его местоположения в записи числа: L = (50)10, С = (100)10, V = (5)10, LXXVI = 76. (