Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

11110001 11111001 11110001 11110111 А число — 6.285 запишется в память в виде слова из 6 байт:

— 6.285

0П0П01 пТкиТо 010010И lTTiooib 11111000lTnoTol

Зона

Цифра

Знак

Цифра

0

0 3

¥ 7

0 3

* 7

Цифра

Цифра

Цифра

Знак

)

0 3

¥ 7

0 3

* 7

Зона

Цифра

Зона

Цифра

0 з

Ь 7

0 3

Ь 7

Цифра

Цифра

Цифра

Цифра

0 3

* 7

0 3

Ь 7

Рис. 2.5. Представление десятичной информации (ЕС ЭВМ): а — зонный (распакованный) формат; б — упакованный формат

Для экономии емкости памяти и для удобства выполнения арифметических операций над десятичными числами в машинах с байтовым представлением информации наряду с описанным выше способом представления алфавитно-цифровых символов предусматриваются специальные форматы для десятичных чи­сел — зонный («распакованный»)(рис. 2.5,а)иуплотненный («упакованный»)(рис. 2.5у6).Десятичные данные рассматри­ваются как десятичные числа со знаком. Числа могут иметь переменную длину. Для представления отрицательных чисел используется прямой код.

Десятичные цифры О, 1, 9 представляются з двоично­

десятичной форме — коде 8421, в котором десятичная цифра изображается соответствующим 4-разрядным двоичным числом. Не используемые при этом комбинации 4-разрядных кодов (1010—1111) служат для кодирования знаков и служебных символов.

Код 8421 удобен для выполнения машиной (а не вручную) преобразований из десятичной системы в двоичную и обратно. Этот код аддитивен, т. е. сумма представлений двух цифр есть код их суммы. Однако использование этого кода связано с труд­ностями обнаружения переноса в следующий десятичный разряд и сложностью перехода к обратным и дополнительным кодам для десятичных чисел, облегчающим выполнение алгебраическо­го сложения. Это объясняется тем, что код 8421 не является самоДополняющимся, т. е. инверсия его двоичных цифр не дает кода дополнения десятичной цифры до 9.

Для зонного формата в каждом байте содержатся только одна десятичная цифра и служебный знак (зона), при этом четыре правых разряда байта служат для представления деся­тичной цифры в двоично-десятичном коде, а четыре левых за­няты специальным 4-разрядным кодом, называемым зоной. Младший байт в этом формате состоит из кодов знака и млад­шей десятичной цифры числа.

В ДКОИ принято кодировать: плюс—1100, минус —

1101 и зона — 1111.

Число — 6.285 в зонном десятичном формате (при работе с кодом ДКОИ) будет иметь вид

11110110 11110010 11111000 11010101

6

2

8

5

Информация при этом о месте расположения десятичной за­пятой (точки) фиксируется в самой программе задачи.

При кодировании десятичного числа без знака в левые четы­ре разряда младшего байта записывается код зоны.

Важное достоинство 8-разрядного слова — байта состоит в возможности размещения в одном слоге кодов двух десятич­ных цифр, чем достигается существенная экономия памяти. Эта возможность реализуется в упакованном десятичном формате (рис. 2.5, б).В этом формате код знака размещается в правых четырех разрядах младшего байта. Десятичное число всегда занимает целое число байтов. Если левые четыре разряда самого левого (старшего) байта оказываются свободными, они запол­няются нулями.

3 Б. М. Каган 65

Число —6.285 в упакованном десятичном формате имеет вид 0 6 2 8 5 —

оооо оно ooTo^jooТоТ ^JToT

Байт Байт Байт

В ЕС ЭВМ в упакованном формате десятичное число может иметь длину от 1 до 16 байт. В этом случае максимальная длина числа — это 31 десятичная цифра плюс знак. При выполнении операций над десятичными числами в ЕС ЭВМ используется упакованный формат. Результат получается также в этом формате. Числа, участвующие в операции, могут иметь неодина­ковую длину. Они рассматриваются как целые числа, выравнен­ные по младшим разрядам. Формат с зоной используется при операциях ввод-вывода десятичных данных.

В вычислительных машинах, использующих* форматы, пока­занные на рис. 2.5, имеются команды для преобразования деся­тичных чисел из зонного формата в упакованный и обратно.

Контрольные вопросы

  1. Перевести шестнадцатеричное число А51.0Е4 в восьмеричную форму.

  2. Разделить двоичное число 10100010 на 1001.

  3. Представить десятичное число — 115 двоичным 8-разрядным пря­мым, обратным и дополнительным кодами.

  4. Определить, какие десятичные числа задают слова C1A513FF и 3E1D8000, если это:

число без знака ЕС ЭВМ;

число со знаком ЕС ЭВМ;

число с плавающей точкой ЕС ЭВМ;

число с плавающей точкой СМ-1300.

  1. Сопоставить диапазоны представимых в машинах ЕС ЭВМ и СМ ЭВМ чисел с плавающей точкой (см. рис. 2.2).

  2. Записать свою фамилию и год рождения в коде ДКОИ.