
- •Тема 3. Информационно-логические основы построения эвм лекция 3.2. Представление информации в эвм
- •Представление символьной информации
- •ФорМы записи чисел
- •2.1. Естественная форма
- •2.2. Нормальная форма
- •Форматы Представления чисел
- •3.1. Формат с фиксированной точкой
- •3.2. Формат с плавающей точкой
- •3.3. Двоично-десятичный код
- •Выполнение арифметических операций с числами с фиксированной и плавающей запятой
- •4.1. Действия над числами, представленными в естественной форме (с фиксированной запятой)
- •4.2. Действия над числами, представленными в нормальной форме (c плавающей запятой)
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-кода для представления символьной информации.
Стандартной формы записи для отрицательного представления таких чисел нет, поэтому программисту самостоятельно нужно хранить информацию о знаке числа и самостоятельно ее обрабатывать, микропроцессоры не имеют соответствующих команд.
Выполнение арифметических операций с числами с фиксированной и плавающей запятой
Как вы уже знаете в ЭВМ все арифметические операции над числами сводятся к операциям арифметического сложения и сдвигу их кодов вправо или влево. При этом учитываются знаки чисел, автоматически определяется знак результата и признаки возможного переполнения разрядной сетки заданных форматов.
Напомним, что числа, представленные в естественной форме, в памяти ЭВМ записываются в дополнительном коде, числа в нормальной форме хранятся в прямом коде. Действия в ЭВМ выполняются в прямом и дополнительном коде, обратный код используется для получения дополнительного кода.