Число битов
Диапазон целых положительных чисел
Диапазон целых отрицательных чисел
8
От 0 до 255
От –128 до 127
16
От 0 до 65 535
От –32 768 до 32 767
32
От 0 до 4 294 967 295
От –2 147 483 648 до 2 147 483 647
Однако на этом мы и остановились. Помимо целых чисел математики также различают рациональные числа, которые могут быть представлены в качестве отношения двух целых чисел. Это отношение также называется дробью. Например, дробь ¾ — рациональное число, отношение чисел 3 и 4. Это число также можно записать в виде десятичной дроби: 0,75. Десятичная дробь остается отношением двух чисел, в данном случае 75/100.
В главе 7 рассказывалось, что в десятичной системе счисления цифры слева от десятичного разделителя являются множителями целых положительных степеней числа 10, а цифры справа — множителями целых отрицательных степеней числа 10. В одном из примеров я показал, что число 42 705,684 равно:
4 × 10 000 +
2 × 1000 +
7 × 100 +
0 × 10 +
5 × 1 +
6 ÷ 10 +
8 ÷ 100 +
4 ÷ 1000.
Обратите внимание на знаки деления. Затем я представил эту последовательность операций без деления:
4 × 10 000 +
2 × 1000 +
7 × 100 +
0 × 10 +
5 × 1 +
6 × 0,1 +
8 × 0,01 +
4 × 0,001.
И наконец, отобразил это число, используя степени числа 10:
4 × 104 +
2 × 103 +
7 × 102 +
0 × 101 +
5 × 100 +
6 × 10–1 +
8 × 10–2 +
4 × 10–3.
Существуют рациональные числа, которые не так легко представить в виде десятичной дроби, например ⅓. Если вы разделите 1 на 3, то получите следующее.
0,33333333333333333333333333333333333333333333333333333…
И так до бесконечности. Подобная дробь называется периодической и записывается 0,(3). Несмотря на то что запись числа ⅓ в виде десятичной дроби выглядит неуклюже, это число по-прежнему является рациональным, поскольку это отношение двух целых чисел. Вот еще один пример: отношение 1/7 можно записать в виде десятичной дроби.
0,1428571428571428571428571428571428571428571428571428571…
Или
Иррациональные числа — это числа, которые нельзя выразить в виде отношения двух целых чисел, значит, десятичная дробь продолжается бесконечно без повторяющихся последовательностей цифр. К числам такого типа относится квадратный корень из 2.
√2 ≈ 1,41421356237309504880168872420969807856967187537695…
Квадратный корень из 2 — решение следующего алгебраического уравнения:
x2 – 2 = 0.
Если число не является решением какого-либо алгебраического уравнения с целочисленными коэффициентами, оно называется трансцендентным. (Все трансцендентные числа иррациональны, однако не все иррациональные числа трансцендентны.) К трансцендентным числам относится число π, представляющее отношение длины окружности к ее диаметру и приблизительно равное следующему.
3,1415926535897932846264338327950288419716939937511…
Еще одним трансцендентным числом является e, к которому стремится выражение:
при n, стремящемся к бесконечности. Данное число приблизительно равно следующему.
2,71828182845904523536028747135266249775724709369996…
Все числа, о которых мы говорили, то есть рациональные и иррациональные, называются действительными, или вещественными. Это обозначение отличает их от мнимых — квадратных корней из отрицательных чисел. Комплексные числа — это комбинации мнимых и вещественных чисел. Несмотря на свое название, мнимые числа существуют и используются, например при решении некоторых сложных задач по электронике.
Мы привыкли считать, что числовой ряд непрерывен. Если вы дадите два рациональных числа, я определю, какое число находится между ними. Для этого достаточно найти их среднее арифметическое. Однако цифровые компьютеры не могут работать с континуумами. Биты могут быть равны либо 0, либо 1, между которыми нет больше никаких значений. Так что цифровые компьютеры могут иметь дело только с дискретными значениями. Количество дискретных значений, которые вы можете представить, напрямую связано с количеством доступных битов. Например, в ячейках емкостью 32 бита можно хранить положительные целые числа в диапазоне от 0 до 4 294 967 295. При необходимости сохранить значение 4,5 придется пересмотреть этот подход и действовать иначе.
Можно ли представить дробные значения в двоичном формате? Да, можно. Вероятно, самый простой подход — использование двоично-десятичного кода (BCD). Как говорилось в главе 19, кодировка BCD позволяет записать десятичные числа в двоичном формате. Для кодирования каждой десятичной цифры (0, 1, 2, 3, 4, 5, 6, 7, 8 и 9) требуется четыре бита.
Десятичная цифра
Двоичное значение
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
Формат BCD особенно полезен в компьютерных программах, которые работают с денежными суммами. Самые очевидные примеры — программы для банков и страховых компаний; многие дробные числа в них предусматривают не более двух знаков после десятичного разделителя.
Как правило, для хранения двух BCD-цифр достаточно одного байта. Такая система записи иногда называется упакованным кодом ВСD. В такой кодировке не используется дополнение до двух. По этой причине в случае упакованного кода BCD для указания того, является ли число положительным или отрицательным, обычно требуется дополнительный бит, называемый знаковым битом. Поскольку для хранения BCD-значения удобно выделять целое число байтов, под бит знака обычно отводится четыре или восемь бит памяти.