Двоично-десятичная система счисления
Двоично-десятичная система счисления широко используется в цифровых устройствах, когда основная часть операций связана не с обработкой и хранением вводимой информации, а с ее вводом и выводом на какие-либо индикаторы с десятичным представлением полученных результатов (микрокалькуляторы, кассовые аппараты и т. п.).
В двоично-десятичной системе счисления цифры от 0 до 9 представляют четырехразрядными двоичными комбинациями от 0001 до 1001, т.е. двоичными эквивалентами десяти первых шестнадцатеричных чисел. Преобразования из двоично-десятичной системы в десятичную систему и обратные преобразования выполняются путем прямой замены четырех двоичных цифр одной десятичной цифрой или обратной замены.
Пример.Преобразовать число 001101112-10 из двоично-десятичной системы в десятичную систему.
Ответ: 001101112-10 = 3710.
Две двоично-десятичные цифры составляют 1 байт. Таким образом, с помощью 1 байта можно представить значения от 0 до 99, а не от 0 до 255, как при использовании 8-разрядного двоичного кода. Используя 1 байт для представления каждых двух десятичных цифр, можно формировать двоично-десятичные числа с любым требуемым числом десятичных разрядов.
Так, если число 1000 0011 0010 0111 рассматривать как двоичное, то его десятичный эквивалент 1000 0011 0010 01112 = 3357510 в несколько раз больше десятичного эквивалента двоично-десятичного числа 1000 0011 0010 01112-10 = 832710.
Арифметические действия с нормализованными числами
|
|
Сложение и вычитание
К началу выполнения арифметического действия операнды операции помещаются в соответствующие регистры АЛУ.
Сначала производится подготовительная операция, называемая выравниванием порядков.
В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своем регистре вправо на количество разрядов, равное разности порядков операндов.
После каждого сдвига порядок увеличивается на единицу, а освободившиеся старшие разряды заполняются нулями. В результате выравнивания порядков одноименные разряды чисел оказываются расположенными в соответствующих разрядах обоих регистров, после чего мантиссы складываются или вычитаются.
В случае необходимости полученный результат нормализуется путем сдвига мантиссы результата влево.
Нормализацией называется выбор такого значения порядка, при котором старший разряд мантиссы имеет значение 1. При нормализации возможны две ситуации:
− результат меньше 1/2, то есть старшие разряды мантиссы нулевые. Если при этом результат представлен в прямом коде, мантисса сдвигается влево до тех пор, пока первая значащая 1 не окажется в старшем разряде. Если же результат представлен в обратном или дополнительном коде (отрицательный), производится сдвиг влево до появления в старшем разряде первого значащего нуля. При каждом сдвиге значение порядка уменьшается на 1;
|
|
− результат больше 1, то есть разрядная сетка переполнена. В этом случае мантисса сдвигается вправо на один разряд с одновременным увеличением порядка на 1.
Правила выполнения основных арифметических операций справедливы для чисел любой позиционной системы счисления.
Примеры
1) Сложить десятичные нормализованные числа 0,536·106 и 0,284·103.
Разность порядков слагаемых здесь равна трём (6-3=3), поэтому перед сложением мантисса второго числа сдвигается на три разряда вправо:
0,000284 ·106 | |
0,536284 ·106 |
2) Сложить двоичные нормализованные числа 0,11011·210 и 0,10111·2–1.
Разность порядков слагаемых здесь равна трем (102+12=112=310), поэтому перед сложением мантисса второго числа сдвигается на три разряда вправо:
0,00010111·210 | |
0,11101111·210 |
3) Сложить шестнадцатеричные нормализованные числа 0,1В5·163 и 0,34Е·16–1.
Разность порядков слагаемых здесь равна четырём (316+116=416=410), поэтому перед сложением мантисса второго числа сдвигается на четыре разряда вправо:
|
|
0,000034Е·163 | |
0,1В5034Е·163 |
4) Выполнить вычитание двоичных нормализованных чисел 0,10101·210 и 0,11101·21.
Разность порядков уменьшаемого и вычитаемого здесь равна единице (102-12=12=110), поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:
0,011101·210 | |
0,001101·210 |
Результат получился не нормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0,1101·20.
4) Выполнить вычитание восьмеричных нормализованных чисел 0,125·83 и 0,32·8-2 Разность порядков уменьшаемого и вычитаемого здесь равна пяти (38+28=58=510), поэтому перед вычитанием мантисса второго числа сдвигается на пять разрядов вправо:
0,0000032 ·83 | |
0,0147746 ·83 |
Результат получился не нормализованным, поэтому его мантисса сдвигается влево на один разряд с соответствующим уменьшением порядка на одну единицу: 0,147746 ·82.
Умножение и деление
Для получения результата в данном случае производятся следующие действия, причем не важно, какое из двух данных чисел больше.
1. Мантиссы перемножаются или одна делится на другую;
2. Порядки при умножении складываются, а при делении вычитаются;
3. При необходимости мантисса результата нормализуется.
|
|
Примеры:
1). Выполнить умножение двоичных нормализованных чисел:
(0,11101 . 2101) . (0,1001 . 211) = (0,11101 . 0,1001) . 2(101+11) = 0,100000101 . 21000.
2). Выполнить умножение восьмеричных нормализованных чисел:
(0,765 . 84) . (0,537 . 85) = (0,765 . 0,537) . 8(4+5) = 0,527353 . 811.
3). Выполнить умножение шестнадцатеричных нормализованных чисел:
(0,А25 . 167) . (0,6С . 169) = (0,А25 . 0,6С) . 16(7+9) = 0,4479С . 1610.
4). Выполнить деление двоичных нормализованных чисел:
(0,100000101 . 21000) : (0,1001 . 211) = (0,100000101 : 0,1001) . 2(1000-11) = 0,11101 . 2101
5). Выполнить деление восьмеричных нормализованных чисел:
(0,527353 . 811) : (0,537 . 85) = (0,527353 : 0,537) . 8(11-5) = 0,765 . 84
6). Выполнить деление шестнадцатеричных нормализованных чисел:
(0,4479С . 1610) : (0,6С . 169) = (0, 4479С : 0,6С) . 16(10-9) = 0,А25 . 167.
Дата добавления: 2019-09-08; просмотров: 845; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!