Какая система счисления наиболее удобна, когда речь идет об автоматической передаче информации, об автоматизации действий над числами, о числовом управлении автоматами?
Техники и математики нашли ответы на эти вопросы. Но чтобы не просто поверить, а понять смысл их ответов, надо разобраться, какими способами можно записать любое число.
Тем, кто не знаком с современной вычислительной техникой, такое занятие может показаться странным. Действительно, ведь хорошо известно, что любое число может быть записано с помощью десяти различных цифр — 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Этими цифрами и составленными из них числами мы пользуемся в повседневной жизни. С них начинаются первые уроки в школе, с ними мы сталкиваемся дома, на работе, на улице. Нам известны правила, по которым их можно складывать и вычитать, умножать, делить. Мы легко оперируем всеми 10 символами, которыми обозначены 10 цифр, и наша десятичная система счисления кажется нам очень простой и удобной.
Однако существуют и другие способы представления чисел, другие системы счисления. Так, например, любое целое число можно записать с помощью одного-единственного знака — 1 (единицы). Для этого символ единицы надо повторить столько раз, сколько в этом числе содержится единиц. Сложение при этом сводится к простому приписыванию единиц, а вычитание — к их вычеркиванию.
Идея, лежащая в основе такой системы «зарубок», крайне проста. Однако для записи больших чисел она слишком громоздка. Поэтому пользовались этой системой только народы, счет которых простирался не дальше одного-двух десятков.
Но вот появились автоматы, и конструкторы этих автоматов вспомнили, что число можно записать набором совершенно одинаковых сигналов. Их очень легко воспроизвести, и их легко «поймет» автомат. Такой способ записи программы работы в виде цепочки одинаковых символов назвали унитарным кодом, и теперь его широко применяют в автоматах.
Можно представить себе систему счисления, прямо противоположную системе зарубок, а именно такую, в которой каждому числу соответствует новый символ. При этом числа 10, 11, 12 и другие должны изображаться различными неповторяющимися значками. В такой системе для представления любого числа потребовался бы всего один значок, один символ, зато общее число этих символов было бы бесконечно велико.
Итак, пользуясь системой зарубок, надо помнить и понимать лишь один символ (это удобно и человеку и автомату!), но для записи большого числа требуется много места (всегда неудобно человеку и часто неудобно автомату!).
Пользуясь системой значков, можно любое число записать одним символом (превосходно с точки зрения человека и автомата), но при этом требуется помнить и понимать бесчисленное множество различных символов (абсолютно неприемлемо со всех точек зрения).
Между системами зарубок и символов, как между двумя противоположными полюсами, заключены все возможные системы счисления, включая нашу десятичную. Отличаются они одна от другой количеством основных значков, с помощью которых можно построить любое число.
Можно ли заставить автомат «помнить» и «понимать» нашу обычную десятичную систему счисления?
Конечно, можно. Для этого, например, можно условиться единицу представлять в виде круглого отверстия, двойку — треугольником, тройку — квадратом и т. д. Можно придумать бесчисленное множество других символов для обозначения десяти различных цифр и различных кодов для записи десятичных чисел. Можно, наконец, заставить автомат «понимать» цифры в их обычном начертании. Однако во всех случаях попытки заставить автомат работать в коде, привычном для человека, приводят к усложнению конструкции, к усложнению действий, сопровождающих процессы переработки чисел.
Какой язык наиболее удобен автомату?
Очевидно, такой, который по числу основных символов легче других поддается физической реализации наиболее простыми механизмами и устройствами.
Самой простой, как уже говорилось, является система зарубок. Однако известен и существенный недостаток этой системы — ее громоздкость. В азбуке Морзе используется три вида сигналов — точка, тире и пауза. Когда текст передается вручную, такой троичный код очень удобен. Операторов, работающих на двух концах линии, нетрудно научить воспроизводить сигналы различной длительности и различать их.
Научить работать в троичном коде автомат оказалось значительно сложнее. Тут явное преимущество имеет более простая
— комбинацией поворотов стрелки вправо и влево, как сделали Вебер и Гаусс;
— в виде пробитых и непробитых участков на бумажной ленте;
— в виде белых и черных черточек на киноленте;
— в виде намагниченных и ненамагниченных участков на магнитной ленте;
— при помощи реле, замыкающих и размыкающих электрические цепи;
— и любых других устройств или механизмов, имеющих два различных состояния.