Вычислительные машины работают в основном с двоичными числами. Двоичная система исчисления или система с основанием 2 относится к позиционным системам и используется для отображения цифр - 0 и 1.
Эти двоичные числа названы битами (от binary digit). Физически в цифровых электронных системах (рис. 2.1) бит 0 представлен напряжением LOW (низким), а бит 1- напряжением HIGH (высоким).
Вес цифры равен значению цифры умноженное на основание в степени на 1 меньше положения цифры в числе. Значение старшей цифры на 1 меньше основания. Пример: ; .
Человеческая деятельность предполагает использование десятичной системы счисления. Десятичная система, или система с основанием 10, содержит 10 цифр (от 0 до 9). Она также характеризуется значением позиции (или весом). В табл. 2.1 показано, например, что десятичное число 1327 равно одной тысяче, плюс три сотни, плюс два десятка, плюс семь единиц (1000+300+20+7=1327).
Рис. 2.1. Диаграмма цифрового сигнала
Таблица 2.1
Значения позиций десятичных чисел
Степень основания
103 102 101 100
Значения позиций
1000 100 10 1
Десятичные
1 3 2 7
1000 + 300 + 20 + 7 = 1327
Двоичная система обладает также свойством уравновешивания. В табл. 2.2
Таблица 2.2
Значения позиций двоичных чисел
Степень основания, i
23 22 21 20
Значения позиций
8 4 2 1
Двоичное Десятичное
СБ МБ
1 0 0 1
8 + 0 + 0 + 1 = 9
приведены десятичные значения первых четырех двоичных позиций. Двоичное число 1001 (произносится: один, нуль, нуль, один) преобразовано, таким образом, в свой десятичный эквивалент 9. Бит единицы двоичного числа в табл. 2.2 называется младшим битом (МБ), бит восьмерки - старшим битом (СБ).
В табл. 2.3 приведены десятичные числа от 0 до 15, а также их двоичные эквиваленты. Те, кто работает в области использования ЭВМ, должны, по меньшей мере, запомнить эти двоичные числа.
Процедура преобразования двоичного числа 1011 0110 (т.е. один, нуль, один, один, нуль, один, один, нуль) в его десятичный эквивалент выполняется в соответствии с табл. 2.4. Десятичные значения каждой позиции записаны под каждым битом, затем десятичные числа суммируются (128+32+16+4+2=182), что дает 182.
Таблица 2.4
Двоично-десятичные преобразования
Степень основания
27
26
25
24
23
22
21
20
Значение позиций
Двоичное
Десятичное
+
+
+
+
= 182
Обычно основание системы счисления указывается индексами. Таким образом, число 1011 01102 является двоичным (или основания 2), а число 18210 — десятичным: 1011 01102 = 18210. Процедура преобразования десятичного числа 53 в его двоичный эквивалент приведена на рис.2.2.
Десятичное 53 сначала делится на 2, что дает нам частное 26 и остаток 1. Этот остаток становится МБ двоичного числа и помещается в эту позицию (см. рис. 2.1). Затем частное (26) перемещается, как показывает стрелка, и становится следующим делимым. Затем каждое частное последовательно делится на 2 до тех пор, пока не получится частное, равное 0, и остаток, равный 1 (см. предпоследнюю строку на рис. 2.1). Последняя строка на рис. 2.2 дает нам результат 5310 = 110 1012.
= 5310
Рис. 2.2. Двоично-десятичные преобразования
Ячейка памяти типичной микро-ЭВМ может содержать двоичное число1001 1110. Такая длинная цепь нулей и единиц сложна для запоминания и неудобна для ввода с клавиатуры. Число 1001 1110 могло бы быть преобразовано в десятичное, что дало бы 158-ю, но процесс преобразований занял бы много времени. Большая часть систем микроинформатики использует шестнадцатеричную форму записи, чтобы упростить запоминание и использование таких двоичных чисел, как 1001 1110.
Шестнадцатеричная система счисления, или система с основанием 16, использует 16 символов от 0 до 9 и А, В, С, D, Е, F. В табл. 2.5 приведены эквиваленты десятичных, двоичных, и шестнадцатеричных чисел.
Таблица 2.5
Десятичные, шестнадцатеричные и двоичные эквиваленты
Десятичные
Шестнадцатеричные
Двоичные
А
В
С
D
E
F
Заметим из табл. 2.5, что каждый шестнадцатеричный символ может быть представлен единственным сочетанием четырех бит.
Таким образом, представлением двоичного числа 1001 1110 в шестнадцатеричном коде является число 9Е. Это значит, что часть 1001 двоичного числа равна 9, а часть 1110 равна Е (конечно, в шестнадцатеричном коде). Следовательно, 1001 11102 = 9E16. (He следует забывать, что индексы означают основание системы счисления.)
Для преобразования двоичного числа 111010 в шестнадцатеричное необходимо начать с МБ и разделить двоичное число на группы из 4 бит. Затем надо заменить каждую группу из 4 бит эквивалентной шестнадцатеричной цифрой: 10102 = А, 00112 = 3, следовательно, 1110102 = 3A16.
Для преобразования шестнадцатеричного числа 7F в двоичное необходимо что бы каждая шестнадцатеричная цифра была заменена своим двоичным эквивалентом из 4 бит.
В примере двоичное число 0111 заменено шестнадцатеричной цифрой 7, а 11112 заменяет F16, откуда 7F16 = 1111 01112.
Шестнадцатеричная запись широко используется для представления двоичных чисел, поэтому необходимо табл.2,5 также запомнить.
Для преобразования шестнадцатеричного числа 2С6Е в десятичное число применяется процедура действий соответствующая таблице 2.6.
Таблица 2.6
Преобразование шестнадцатеричного числа в десятичное
Степень шестнадцати
163
162
161
160
Значение позиции
Шестнадцатеричное
Десятичное
4096 × 2
+
С
256 × 12
+
16 × 6
+
Е
1 × 14
= 11374
Значениями позиций первых четырех шестнадцатеричных цифр являются соответственно слева направо 4096, 256, 16 и 1. Десятичное число содержит 14 (Е]6) единиц, 6 чисел 16, 12 (C16) чисел 256 и 2 числа 4096. Каждая цифра умножается на соответствующий ей вес, получается сумма, которая и дает нам десятичное число 11374.
Преобразуем десятичное число 15797 в шестнадцатеричное. На рис. 2.3 показана процедура действий. В первой строке 1579710 разделено на 16, что дает частное 98710 и остаток 510, который преобразуется затем в свой шестнадцатеричный эквивалент (510 = 516) и становится цифрой младшего разряда (МР) шестнадцатеричного числа.
Первое частное (987) становится делимым во второй строке и снова делится на 16, что дает частное 61 и остаток 11 или шестнадцатеричное В.
В третьей строке 61 делится на 16, дает частное 3 и остаток 1310 или D16, а в четвертой строке делимое 3 делится на 16, дает частное 0 и остаток 310 или 316. Когда частное равно 0, как в четвертой строке, преобразование заканчивается. 316 становится цифрой старшего разряда (СР) результата, т.е. 3DB516.С целью удобства преобразования чистые двоичные числа представляются десятичными либо шестнадцатеричными. Однако двоично-десятичное преобразование — операция не простая.
В калькуляторах, магистралях и числовых приборах, когда на доступных пользователю выходах и входах широко распространены десятичные числа, для их представления используют специальный двоично-десятичный код (ДДК). В табл. 2.7 приведено несколько десятичных чисел и соответствующих им двоично-десятичных эквивалентов (система 8421). Этим определяются веса позиций каждого из четырех бит ДДК (используют другие ДДК, например 5421 и плюс 3).
Запишем десятичное число 3691 в ДДК 8421. Каждая десятичная цифра преобразуется прямо в свой двоично-десятичный эквивалент из 4 бит, и преобразования дают 369110 = 0011 0110 1001 0001 ДДК:
Десятичное число 3 6 9 1
Двоично-десятичное число 0011 0110 1001 0001
Преобразуем теперь двоично-десятичное число 1000 0000 0111 0010 в его десятичный эквивалент. Каждая группа из 4 бит прямо преобразуется в ее десятичный эквивалент, и тогда получаем 1000 0000 0111 0010ддк = =807210:
Двоично-десятичное число 1000 0000 0111 0010
Десятичное число 8 0 7 2
Микропроцессоры складывают чистые двоичные числа, но они обладают, однако, командами для преобразования результата своих сложений в двоично-десятичную запись. Полученные двоично-десятичные числа легко затем представить в десятичной записи, используя выше описанные простые процедуры.