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

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

Одновременно продолжали развиваться телеграфия и телефония. Вот когда вопросы о кодировании информации, о скорости ее передачи и обработки, о различных системах счисления приобрели первостепенною важность не только с точки зрения маленькой кучки математиков, занимавшихся, как казалось сторонним наблюдателям, совсем «никчемушным» делом, но и с точки зрения целой армии инженеров и ученых, придумывающих различные системы связи и вычислительные машины. Быстрыми шагами началось развитие теории информации, которая должна отвечать на эти вопросы и сотни других.

Какая система счисления наиболее удобна, когда речь идет об автоматической передаче информации, об автоматизации действий над числами, о числовом управлении автоматами?

Техники и математики нашли ответы на эти вопросы. Но чтобы не просто поверить, а понять смысл их ответов, надо разобраться, какими способами можно записать любое число.

Тем, кто не знаком с современной вычислительной техникой, такое занятие может показаться странным. Действительно, ведь хорошо известно, что любое число может быть записано с помощью десяти различных цифр — 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Этими цифрами и составленными из них числами мы пользуемся в повседневной жизни. С них начинаются первые уроки в школе, с ними мы сталкиваемся дома, на работе, на улице. Нам известны правила, по которым их можно складывать и вычитать, умножать, делить. Мы легко оперируем всеми 10 символами, которыми обозначены 10 цифр, и наша десятичная система счисления кажется нам очень простой и удобной.

Однако существуют и другие способы представления чисел, другие системы счисления. Так, например, любое целое число можно записать с помощью одного-единственного знака — 1 (единицы). Для этого символ единицы надо повторить столько раз, сколько в этом числе содержится единиц. Сложение при этом сводится к простому приписыванию единиц, а вычитание — к их вычеркиванию.

Идея, лежащая в основе такой системы «зарубок», крайне проста. Однако для записи больших чисел она слишком громоздка. Поэтому пользовались этой системой только народы, счет которых простирался не дальше одного-двух десятков.

Но вот появились автоматы, и конструкторы этих автоматов вспомнили, что число можно записать набором совершенно одинаковых сигналов. Их очень легко воспроизвести, и их легко «поймет» автомат. Такой способ записи программы работы в виде цепочки одинаковых символов назвали унитарным кодом, и теперь его широко применяют в автоматах.

Можно представить себе систему счисления, прямо противоположную системе зарубок, а именно такую, в которой каждому числу соответствует новый символ. При этом числа 10, 11, 12 и другие должны изображаться различными неповторяющимися значками. В такой системе для представления любого числа потребовался бы всего один значок, один символ, зато общее число этих символов было бы бесконечно велико.

Итак, пользуясь системой зарубок, надо помнить и понимать лишь один символ (это удобно и человеку и автомату!), но для записи большого числа требуется много места (всегда неудобно человеку и часто неудобно автомату!).

Пользуясь системой значков, можно любое число записать одним символом (превосходно с точки зрения человека и автомата), но при этом требуется помнить и понимать бесчисленное множество различных символов (абсолютно неприемлемо со всех точек зрения).

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

Можно ли заставить автомат «помнить» и «понимать» нашу обычную десятичную систему счисления?

Конечно, можно. Для этого, например, можно условиться единицу представлять в виде круглого отверстия, двойку — треугольником, тройку — квадратом и т. д. Можно придумать бесчисленное множество других символов для обозначения десяти различных цифр и различных кодов для записи десятичных чисел. Можно, наконец, заставить автомат «понимать» цифры в их обычном начертании. Однако во всех случаях попытки заставить автомат работать в коде, привычном для человека, приводят к усложнению конструкции, к усложнению действий, сопровождающих процессы переработки чисел.

Какой язык наиболее удобен автомату?

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

Самой простой, как уже говорилось, является система зарубок. Однако известен и существенный недостаток этой системы — ее громоздкость. В азбуке Морзе используется три вида сигналов — точка, тире и пауза. Когда текст передается вручную, такой троичный код очень удобен. Операторов, работающих на двух концах линии, нетрудно научить воспроизводить сигналы различной длительности и различать их.

Научить работать в троичном коде автомат оказалось значительно сложнее. Тут явное преимущество имеет более простая двоичная система счисления. Ведь если любую букву или цифру можно записать в виде всего лишь двух символов, то, значит, любой текст, любую программу действия можно представить:

— комбинацией поворотов стрелки вправо и влево, как сделали Вебер и Гаусс;

— в виде пробитых и непробитых участков на бумажной ленте;

— в виде белых и черных черточек на киноленте;

— в виде намагниченных и ненамагниченных участков на магнитной ленте;

— при помощи реле, замыкающих и размыкающих электрические цепи;

— и любых других устройств или механизмов, имеющих два различных состояния.

Вряд ли Бодо, разрабатывая телеграфный аппарат, сознательно анализировал возможности использования той или иной системы счисления в своем автомате. Скорее всего он и не подозревал, что существуют другие системы счисления, кроме той, которой его учили в школе. Он решал техническую задачу и из множества решений интуитивно нашел одно самое простое и удобное для практической реализации, применив двоичный код.

Что есть система?

Я ношу обувь 42-го размера. У других авторов и читателей размер ноги может быть другим. Соответственно они носят обувь меньшего (41-го, 40-го) или большего (43-го, 44-го) размера. Нумерация размеров обуви имеет строгий и понятный порядок, пронизанный общей идеей.

Словом, это образцовый пример системы, хорошо нам понятной, даже если мы не знаем, откуда взялись и что означают таинственные числа 40, 41, 42 и т. д.

Система противостоит хаосу, за примером которого, по мнению автора, тоже далеко идти не надо.

Одному из моих ближайших родственников в возрасте четырех лет понадобилось кое-что из детского гардероба. Я направился в «Детский мир».

Мне поручили приобрести вельветовый костюмчик 28-го размера. В продаже его не было; продавец предложил мне взамен трикотажный костюмчик, причем предупредил, что в моем случае следует почему-то брать 32-й размер, добавив, что, например, пижама для того же ребенка уже нужна 26-го размера. Я не стал спрашивать почему и пошел дальше. Через час у меня был список, согласно которому все для того же малыша полагались: ботиночки — 26-го размера, к ним калоши — 7-го размера, сандалии — 25-го размера, валенки — 18-го размера, к ним калоши — 9-го размера, чулки — 16-го размера, шапка меховая — 53-го размера…


Перейти на страницу:
Изменить размер шрифта: