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

Дальше идет столбец двоек. Мы складываем 1 и 0 (переносить ничего не требуется):

Дальше – столбец четверок. Мы складываем 1 и 1, получаем 10, пишем 0, держим 1 в уме и переносим на столбец влево:

Следующий столбец – восьмерки. Складываем 1 и 0 и 1, получаем 10, пишем 0 и держим 1 в уме:

Заканчиваем на столбце, означающем, сколько раз в числе встречается 16. Сложение дает 10, мы пишем 0 в текущем столбце и 1 в столбце с разрядом 32:

Мы обнаружили, что 10100 + 1110 = 100010.

Переведем это на язык десятичных чисел:

101002 = 20, 11102 = 14, 1000102 = 34.

Разумеется, 20 + 14 = 34.

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

Умножение числа на 10 в десятичной системе не представляет сложности: мы просто добавляем цифру 0 справа: 23 × 10 = 230. Точно так же выглядит умножение на 2 в двоичной системе: 1101 × 10 = 11010. В случае десятичных чисел это очевидно, в случае двоичных 1101 означает:

× 8 + × 4 + × 2 + × 1.

Умножение на 2:

× 16 + × 8 + × 4 + × 2 + × 1.

Лишний ноль на конце дает 11010.

Умножение на 4, 8 и другие степени двойки тоже просто: например, умножение на 810 (10002) равнозначно приращению трех нулей с правой стороны числа.

Итак, умножение превращается в игру «перемести-и-добавь-цифры». Проиллюстрируем это на примере умножения 11010 на 1011. Для начала запишем второе число так:

1011 = 1000 + 10 + 1.

Умножение на 11010 можно представить так:

11010 × 1011 = 11010 × (1000 + 10 + 1) = 11010 × 1000 + 11010 × 10 + 11010 × 1 = 11010 + 11010 + 11010.

Удобнее умножать в столбик:

А вот и ответ:

Давайте переведем числа в десятичные, чтобы удостовериться, что все правильно:

110102 = 16 + 8 + 2 = 26;

10112 = 8 + 2 + 1 = 11;

1000111102 = 256 + 16 + 8 + 4 + 2 = 286.

Мы не ошиблись: 26 × 11 = 286.

Дроби

В десятичной системе мы можем записывать не только целые числа. Если поставить в конце запятую[35], мы получим новые места для цифр: по мере движения вправо степени десяти будут все меньше. Например, 34,27 – это компактный способ записи такого выражения:

Двоичная система тоже позволяет записывать дробные значения. Каждую следующую цифру после запятой[36] мы умножаем на предыдущую степень двойки. Например, 101,0112 означает:

Непривычный способ записать одну вторую: 0,12!

Есть и другие системы счисления, помимо десятичной, единичной и двоичной[37]. В третичной системе мы пользуемся цифрами 0, 1 и 2, здесь все строится на степенях тройки. Скажем, 11023 означает:

1 × 27 + 1 × 9 + 0 × 3 + 2 × 1 = 38.

В дробях первая позиция справа от запятой означает умножение на одну третью, вторая позиция – на одну девятую и т. д.:

Если представить 42 в виде суммы степеней двойки, мы увидим, что это 101010. А число 11011 можно представить как 16 + 8 + 2 + 1 = 27.

Глава 3

0,99999999999…

Безусловно, простейший способ записать число один – это цифра 1. Но вы можете столкнуться с тем фактом, что уходящая в бесконечность десятичная дробь 0,999999… представляет собой другой способ записи того же числа. В главе 3 мы присмотримся к этому обстоятельству повнимательнее.

Что означают десятичные числа?

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

235 = 2 × 100 + 3 × 10 + 5 × 1.

Для некоторых дробных величин десятичная система счисления также чрезвычайно эффективна. Возьмем число 3/4. В десятичной системе его можно записать так: 0,75. Эта запись означает:

Десятичная дробь 0,75 в точности равна 3/4.

Тем не менее если мы предпримем попытку записать 2/7 в виде десятичной дроби, то потерпим фиаско. Если мы попробуем разделить два на семь с помощью калькулятора, то получим неприглядное 0,28571429, причем это будет лишь приближенное значение, не равное в точности 2/7.

вернуться

35

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

вернуться

36

В случае с двоичной системой неправильно говорить «десятичная запятая», лучше называть ее двоичной запятой, или запятой в позиционном представлении числа.

вернуться

37

Программисты нередко пользуются шестнадцатеричной системой счисления. В десятичной системе 10 цифр (от 0 до 9), в шестнадцатеричной нам нужно 16 разных символов, поэтому числа от 10 до 15 обозначают с помощью букв от A до F.