Как и в десятичной системе счисления, большие двоичные числа часто выражаются с использованием приставок К (кило), М (мега) и Г (гига). В двоичной системе приставка «кило» соответствует множителю 210, например 64 Кбайт (или КБ) памяти. Аналогично, приставка «мега» соответствует множителю 220= 1 048 576, например дискета объемом 1.44 Мбайт (или МБ). Точно так же емкость 20 Гбайт (или ГБ) винчестера составляет 20х230= 21 474 836 480 байт. Естественно, 1-й вариант записи предпочтительнее.
Длинные двоичные числа очень неудобны для человеческого восприятия. В Табл. 1.2 двоичные числа специально были разбиты на 4-битные группы, чтобы их удобнее было читать. Предположим теперь, что адрес какого-либо элемента в памяти равен Ь’1000 1100 0001 0100 0000 1010’. Если каждой комбинации из четырех битов сопоставить свой символ (0…9 и A…F, как показано в Табл. 1.3), то этот адрес можно будет записать в виде h’8СН0А’[14], что гораздо удобнее. Этот код называется шестнадцатеричным, поскольку для обозначения разрядов в нем используется 16 символов. Шестнадцатеричные числа (числа с основанием 16) — это вполне жизнеспособные самостоятельные числа, а не просто какое-то дополнительное представление двоичных чисел. Разряды шестнадцатеричного числа имеют веса соответственно 160, 161, 162…., 16n[15].
Двоично-десятичный код (Binary-Coded Decimal — BCD) является гибридом двоичного и десятичного представлений, широко используемым при работе с портами ввода/вывода цифровых устройств (см. Пример 11.5 на стр. 360). При таком представлении каждый десятичный разряд заменяется своим двоичным эквивалентом. Так, число 1998 записывается в виде (0001 1001 1001 1000)BCD. Это представление очень сильно отличается от эквивалентного обычного двоичного кода, несмотря на то, что при его записи тоже используются только нули и единицы. Как и следовало ожидать, выполнение арифметических операций с числами, записанными таким образом, представляет собой не простую задачу. Поэтому, как правило, на входе системы BCD-числа преобразовываются в обыкновенные двоичные числа, а после обработки преобразовываются обратно (см. Программу 5.7 на стр. 159).
Двоичная арифметика[16] подчиняется тем же правилам, что и более привычная для вас арифметика по основанию 10. Более того, это утверждение справедливо для любой системы счисления. Простейшей арифметической операцией является операция сложения, представляющая сокращенную форму записи операции нахождения общего количества чего-либо по сравнению с более примитивным процессом счета или прибавления единицы. Так, запись 2 + 4 = 6 гораздо удобнее, чем 2 + 1 = 3, 3 + 1 = 4, 4 + 1 = 5, 5 + 1 = 6. Однако при этом необходимо помнить правила сложения. Для десятичных чисел существует 45 правил, если учесть, что порядок слагаемых не важен, — от 0 + 0 = 0 до 9 + 9 = 18. Двоичное сложение гораздо проще, поскольку подчиняется всего трем правилам:
Сначала эти правила применяются к самым младшим значащим битам (Least Significant Bit — LSB); при возникновении переноса он передается в бит, расположенный левее. Процесс вычисления заканчивается старшими значащими битами (Most Significant Bit — MSB). Если из этой позиции происходит перенос, то именно он становится самым старшим битом суммы. Например:
Подобно тому как при сложении осуществляется прямой счет, операция вычитания соответствует обратному счету, при котором от исходного значения отнимаются единицы. Так, операция 8–5 = 3 эквивалентна последовательности операций 8–1 = 7, 7–1 = 6, 6–1 = 5, 5–1 = 4, 4–1 = 3.
В соответствии с известной методикой вычитания десятичных чисел правила вычитания применяются и к двоичным числам, начиная с младших битов и заканчивая старшими. Для каждого бита, в котором из меньшего числа вычитается большее, из ближайшего старшего бита занимается единица. С учетом заема правила вычитания в двоичной системе имеют вид
0 — 0 = 0
10 — 1 = 1 Из старшего бита занимается 1
15
Многие научные калькуляторы, в том числе и программа «Калькулятор» из состава Microsoft Windows, могут производить вычисления в двоичной и шестнадцатеричной системах счисления.
16
Обычный двоичный код иногда называют кодом «8-4-2-1» по значению весов четырех младших разрядов.