Выбрать главу

Мнимое преимущество позиционной системы счисления[29] – это то, что в ней проще производить вычисления. Но давайте задумаемся о том, сколько сил уходит на перемножение двух чисел. Во-первых, нам необходимо запоминать дополнительные математические данные. К тому же мы обязаны помнить таблицу умножения. Во-вторых, мы проделываем многоуровневую процедуру: сортируем числа по разрядам, умножаем по соответствующему правилу, получаем промежуточные данные, складываем.

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

Единичная система счисления

Простейший способ записи чисел – единичная система счисления: мы просто записываем столько же символов (будем использовать цифру 1), сколько единиц в интересующем нас числе. Например, число 3 окажется трехзначным: 111. Сложение и умножение становятся исключительно простыми. Чтобы сложить 3 и 5, мы просто запишем два числа, 111 и 11111, друг за другом (без пробела) – и вот он, ответ: 11111111. Умножать тоже просто. Мы запишем одно число вертикально, а другое горизонтально и получим следующую таблицу:

Затем мы заполним таблицу, поставив единичку в каждом столбце и в каждой колонке:

Наконец, мы выпишем все единички в ряд и получим ответ: 111111111111111. Складывать и перемножать числа в единичной системе счисления существенно проще, чем десятичные или римские числа[30].

Разумеется, такая простота вычислений дается ценой титанических затрат внимания и времени. Никому не захочется прибегать к этому методу, чтобы перемножить 47 и 924.

Компромисс

Числа, записанные в двоичной системе счисления[31], не так привычны нам, как десятичные или римские, но с ними проще делать вычисления. Вот почему в компьютерах используется именно двоичная система. Чтобы разобраться, как она устроена, нам нужно припомнить особенности десятичной системы.

Для записи чисел в десятичной системе счисления используют десять символов, располагаемых в разных комбинациях в ряд по горизонтали. Значение символа зависит от его места в ряду. 29 и 92 означают разные числа, потому что 2 и 9 занимают разные позиции. 29 означает «два десятка и девять единиц». 5804 означает «пять тысяч, восемь сотен, ни одного десятка и четыре единицы». Позиция цифры в десятичном числе означает, на какую степень десяти[32] мы ее умножаем. Разряды растут справа налево: единицы, десятки, сотни, тысячи, десятки тысяч и т. д. Иными словами, запись 5804 означает:

× 10³ + × 10² + × 101 + × 100.

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

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

В двоичной системе счисления используются всего два символа: 0 и 1. Разряды здесь тоже растут справа налево, обозначая количество единиц, двоек, четверок, восьмерок и т. д. Например, в двоичной записи 10110 означает:

× 2⁴ + × 2³ + × 2² + × 21 + × 20 = 16 + 4 + 2 = 22.

Проверьте, насколько вы ориентируетесь в новой теме: чему равно число 42 в двоичной системе и чему равно число 110112 в десятичной[34]? Ответы – в конце главы.

Вычисления

Двоичные числа труднее для чтения, чем десятичные. Двоичная запись 1011001 кажется менее привычной, чем десятичная запись того же числа: 89. Преимущество двоичных чисел в том, что их использование облегчает вычисления. Вместо огромного количества математических данных нам необходимы всего две таблицы:

Заметьте, что в таблице умножения 10 означает число два.

Сложение двоичных чисел устроено так же, как в десятичной системе. Например, нам нужно найти сумму 101002 и 11102. Расположим эти числа друг над другом:

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

вернуться

29

Позиционная система счисления – это такая система счисления, в которой значение каждого символа в записи числа зависит от его позиции (разряда). – Прим. пер.

вернуться

30

Предлагаю вам самостоятельно найти алгоритмы для вычитания и деления.

вернуться

31

Также говорят: система счисления с основанием 2.

вернуться

32

Напомним, что показатель степени означает, сколько раз мы перемножаем основание: например, 10³ = 10 × 10 × 10. Естественно, 101 = 10. По договоренности, 100 = 1. Это логично, так как каждая следующая степень десяти в десять раз больше предыдущей.

вернуться

33

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

вернуться

34

Чтобы отличить запись в двоичной системе от записи в десятичной, мы будем ставить нижний индекс: 11012 или 110110.