Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
17.03.2016
Размер:
180.22 Кб
Скачать

3.3. Двоично-десятичный код

В двоично-десятичной (BCD – Binary-Coded Decimal) или более точно двоично-кодированной десятичной системе (ДКДС) каждую цифру десятичного числа представляют в виде 4-х разрядного двоичного числа (тетрады) и в таком виде записывают последовательно друг за другом. Этот код может оказаться полезным, когда нужно преобразовать строку числовых знаков «3478» в число 3478, над которым затем будут производиться арифметические действия.

Пример 3.18. Десятичное число 9703 в двоично-десятичной системе выглядит так:

1001 0111 0000 0011.

Расширением двоично-десятичного кода является расширенный двоично-десятичный код обмена информацией (EBCDIC – Extended Binary-Coded Decimal Interchange Code), который преобразует как числовые, так и буквенные строки.

В этом коде для каждой десятичной цифры отводится по целому байту, при этом старшие полубайты (зона) каждого байта заполняются кодом 0011 (в соответствии с ASCII-кодом), а в младших (левых) полубайтах обычным образом кодируются десятичные цифры.

ЭВМ (в том числе семейства Intel 80x86) поддерживают работу с двумя форматами двоично-десятичных чисел - упакованным и неупакованным (распакованным) форматами.

Упакованные двоично-десятичные числа занимают один байт и вмещают, поэтому, две тетрады для записи десятичной цифры. Это значит, что с помощью однобайтного упакованного двоично-десятичного числа можно записать десятичные числа от 0 до 99. При необходимости работать с большими числами, необходимо использовать несколько байт.

Упакованный формат используется обычно в ПК при выполнении операций сложения и вычитания двоично-десятичных чисел.

Неупакованные двоично-десятичные числа, также как и упакованные, занимают один байт, однако в одном байте записывается одна десятичная цифра. Эта цифра записывается в младшей тетраде байта, значение старшей обычно не существенно (можно как в коде EBCDIC использовать 0011 или для удобства отладки, в старшую тетраду байта лучше записать нули). Это значит, что с помощью неупакованного формата можно записать в одном байте десятичное число от 0 до 9.

Распакованный формат используется в ПК при вводе-выводе информации в ПК, а также при выполнении операций умножения и деления двоично-десятичных чисел. Распакованный формат представления двоично-десятичных чисел (иногда его называют "зонный") является следствием использования в ПК ASCII-кода для представления символьной информации.

Стандартной формы записи для отрицательного представления таких чисел нет, поэтому программисту самостоятельно нужно хранить информацию о знаке числа и самостоятельно ее обрабатывать, микропроцессоры не имеют соответствующих команд.

  1. Выполнение арифметических операций с числами с фиксированной и плавающей запятой

Как вы уже знаете в ЭВМ все арифметические операции над числами сводятся к операциям арифметического сложения и сдвигу их кодов вправо или влево. При этом учитываются знаки чисел, автоматически определяется знак результата и признаки возможного переполнения разрядной сетки заданных форматов.

Напомним, что числа, представленные в естественной форме, в памяти ЭВМ записываются в дополнительном коде, числа в нормальной форме хранятся в прямом коде. Действия в ЭВМ выполняются в прямом и дополнительном коде, обратный код используется для получения дополнительного кода.

Соседние файлы в папке Лекции по информатике