Формат с фиксированной точкой



ТЕМА 3. ИНФОРМАЦИОННО-ЛОГИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ ЭВМ

ЛЕКЦИЯ 3.2. ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В ЭВМ

ПРЕДСТАВЛЕНИЕ СИМВОЛЬНОЙ ИНФОРМАЦИИ

 

Поскольку байт имеет 256 различных состояний, то с помощью 1 байта можно закодировать 256 различных символов. Состояние байта (числа от 0 до 25510 или 0 до 3778, или от 0 до FF16) при этом будет представлять код одного из символов. Как мы уже отмечали наиболее распространенным двоичным кодом как для передачи по каналам связи, так и для представления символов в ЭВМ является код ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией).

Для возможности кодировки русского текста используется его расширение до 8 битов (КОИ-8). Полная таблица кода разбита на 16 строк и 16 столбцов, имеющих 16-ричные номера от 0 до F. Код символа составляется из номера столбца, к которому приписывается номер строки. Основной стандарт для кодирования символов использует шестнадцатеричные коды 00-7F, расширение стандарта – 80-FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширении стандарта кодируются символы псевдографики и буквы национального алфавита (естественно, в разных странах разные).

 

ФОРМы ЗАПИСИ ЧИСЕЛ

 

В ЭВМ применяются две формы представления двоичных чисел:

· естественная форма или форма с фиксированной запятой (точкой);

· нормальная форма или форма с плавающей запятой (точкой).

Естественная форма

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

Пример 3.12. В десятичной системе счисления имеются 5 разрядов в целой части числа (до запятой) и 5 разрядов в дробной части числа (после запятой); числа, записанные в такую разрядную сетку, имеют вид:

+00721,35500; +00000,00328; -10301,20260.

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

Пример 3.13. Диапазон значащих чисел (Q) в системе счисления с основанием m при наличии L разрядов в целой части и k разрядов в дробной части числа (без учета знака числа) будет:

m-k ≤ Qm≤ ml – m-k.

При m=2, l=10 и k = 6: 0,015 ≤ Q ≤ 1024.

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

Нормальная форма

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

Qm = ±M×m±p,                                         (3.12)

где М – мантисса числа (|М| < 1); p – порядок числа (p – целое число); m – основание системы счисления.

Для однозначности представления чисел используется нормализованная форма, при которой абсолютная величина мантиссы должна отвечать условию:

1/m ≤ |M| < 1

Ограничение справа требует, чтобы мантисса представлялась правильной дробью, ограничение слева — чтобы после запятой присутствовала значащая цифра (не 0).

Пример 3.14. Приведенные в примере 3.12 числа в нормальной форме запишутся так:

+0,721355×103; +0,328×10-3; -0,103012026×105.

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

Пример 3.15. Диапазон значащих чисел в системе счисления с основанием m при наличии n разрядов у мантиссы и k разрядов у порядка (без учета знаковых разрядов порядка и мантиссы) будет:

,

где pmax=mk-1. При m=2, n=10 и k=6 диапазон чисел простирается примерно от 10-22 (2-10 2-63 = 2-10 × (2-10)6 × 2-3≈ 10-3 × (10-3)6×10 -1) до 1019 ((1 – 2-10 )×263 ≈ (210)6 ×23 ≈ (103)6×10).

Форматы Представления чисел

 

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

Каждая из форм записи чисел имеет определенные форматы для каждого типа ЭВМ, составленные из целого количества байт. Длину формата данных измеряют в количестве двоичных разрядов (битах), байтах или в машинных словах. Машинным словом называется информационный объём двоичных данных, одновременно передаваемый внутри ЭВМ от одного узла к другому (по шине данных), и рассматриваемых аппаратной частью ЭВМ как единое целое. Например, в ЕС ЭВМ и в 32-разрядных ПЭВМ используются форматы: полуслово — 2 байта (16 бит), слово — 4 байта (32 бит), двойное слово — 8 байт (64 бит); в СМ ЭВМ и в 16-разрядных ПЭВМ: слово—2 байта, двойное слово — 4 байта.

 

Формат с фиксированной точкой

Форматы с фиксированной точкой применяется для представления целых чисел. Обычно используют 2 формата:

· с обычной точностью (2 байта, короткий формат, H);

· с двойной точностью (4 байта, длинный формат, F)

В первом случае для размещения двоичного кода используют 15 битов, во втором –31 бит. Во всех форматах знак числа занимает место перед старшим разрядом числа и кодируется двоичной цифрой, при этом код 0 означает знак "+", код 1 - знак "-". Это место разрядной сетки называется знаковым разрядом.

Рис. 3.1 Форматы чисел с фиксированной точкой

В IBM PC первые два формата называются целое слово (2 байта) и короткое целое (4 байта). Есть ещё один формат – длинное целое, который использует 8 байтов.

Рассмотрим диапазон представления чисел в коротком 2 байтовом формате (Н) и в длинном 4 байтовом (F) (рис 3.1). В разрядных сетках вместе указаны коды наименьшего и наибольшего значения чисел. Эти коды соответствуют следующим десятичным числам:

в формате Н:

|А|min = 1;

|A|max = 215 – 1 (32767) ≈ 215 = 210×25 ≈ 103×25 = 32×103;

в формате F:

|А|min = 1;

|A|max = 231 – 1 ≈ 231 = (210)3 ×2 ≈ (103)3×2= 2×109

Для сокращения записи двоичных чисел можно использовать шестнадцатеричную систему. Так, в формате Н код |А|min = 0001 ; |A|max = 7FFF, в формате F – |А|min = 00000001, |A|max = 7FFFFFFF.

Важное замечание. Положительные и отрицательные числа представляются в формате с фиксированной точкой в дополнительном коде.

Пример 3.16. В форматах Н и F представить числа A = 173, В - -173

АH = 0.0000000101011012; BH = 1.1111111010100112;

АH = 00AD16 ; BH = FF5316; АF = 000000AD16; BF = FFFFFF5316.

По первой шестнадцатеричной цифре можно определить знак числа Если первая цифра меньше 8, то число положительное, если ее значение oт 8 до F, то отрицательное.

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

 

 

Формат с плавающей точкой

Для представления чисел в нормальной форме используются форматы разной длины. В общем случае в разрядной сетке форматов должны отводиться места для знака мантиссы (старший 31 разряд), знака порядка (предшествующий 30 разряд), значения порядка (например, 6 разрядов как в ЕС ЭВМ, с 29-го по 24-ый), в остальные 24 разряда (с 23-го по 0-ой) записывается мантисса числа. На рис. 4.4 представлена разрядная сетка в формате 4 байта.

31 30 29         24 23                       1 0

 

Рис. 3.2. Примерный формат с плавающей точкой

 

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

В ЕС ЭВМ используются три формата: короткий Е (4 байта), длинный D (8 байт) и повышенной точности (16 байт). В СМ ЭВМ, а также в некоторых мини и микроЭВМ, например PDP-11, используются 2 формата: с обычной точностью (4 байта) и с двойной точностью (8 байт). Особенностями нормальной формы в ЕС и СМ ЭВМ являются следующие:

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

В ЕС ЭВМ во всех форматах 7 разрядов отводится под значение порядка и его знак. Следовательно, числовая ось порядков находится в диапазоне -26 ≤ P ≤ 26-1 или -64 ≤ P ≤ 63.

Смещенный порядок, называемый характеристикой, определяется смещением порядка на +26 = 6410 = 4016, т.е. характеристика Рх = Р + 4016 не имеет знака.

Характеристика может принимать значения в диапазоне 0 ≤ Рх ≤ 12710 = 7F16, и под ее значение отводятся 7 разрядов (27-1 = 127). Очевидно, если Рх = 4016,то Р = 0, если Рх < 4016 ,то порядок отрицательный (Р < 0), при Рх > 4016 — порядок положительный (Р > 0).

Максимальное число в формате Е: |A|max = (1 – 2-24 )×263 ≈ (210)6 ×23 ≈ (103)6×23 = 8×1018

В СМ ЭВМ в разрядной сетке под порядок отводится 8 двоичных разрядов (-27 ≤ P ≤ 27-1), под мантиссу — 23 (в формате двойной точности – 55 разрядов). Здесь также используется беззнаковый порядок, смещенный на 27=12810=2008=8016, который меняется в диапазоне 0 ≤ Pх ≤ 25510 = 3778 = FF16.

Максимальное число в СМ ЭВМ в формате обычной точности при Рmax =127 имеет значение:

|A|max = (1 – 2-23 )×2127 ≈ (210)12 ×27 ≈ (103)12×102 = 1038

Остальные форматы отличаются только разрядностью мантиссы.

2). В СМ ЭВМ есть еще одна особенность форматов с плавающей точкой. Так как старшая цифра нормализованной мантиссы должна быть 1, то это позволяет не хранить её, а только предполагать её наличие. Такое представление как бы увеличивает разрядность мантиссы (т.е. в операциях участвуют 24 (для чисел одинарной точности) и 56 разрядов (для чисел двойной точности)) а значит и точность расчетов.

Пример 3.17. Представим в разрядной сетке формата обычной точности два числа: А = 32008,510 = 7D08,8 и В = -32008,510 = -7D08,8.

Для этого найдем нормализованные мантиссы и смещенные порядки:

Для В ЕС ЭВМ: MA = 0,7D088, РхA =40 + 4 = 44;

MB = - 0,7D088, РxB = 40 + 4 = 44 (см. рис. 4.5).

Рис. 3.3. Представление чисел в формате Е

 

Для СМ ЭВМ: MA = 0,FA11, РA =80 + F = 8F;

               MB = - 0,FA11, РA = 80 + F = 8F.

После учета скрытого разряда мантисса будет иметь вид:

M’A = 0,F422, M’B = - 0,F422.

В IBM PC (с процессором Intel 80x86) используется 3 формата с плавающей точкой:

· короткое вещественное (КВ, 4 байта, смещенный порядок занимает 8 бит, мантисса – 23 бита, single);

· длинное вещественное (ДВ, 8 байтов, смещенный порядок занимает 11 бит, мантисса – 52 бита, double);

· временное вещественное (ВВ, 10 байтов, смещенный порядок занимает 15 бит, мантисса – 64 бита, extended).

Особенностями нормальной формы в IBM PC являются следующие:

1) Мантисса всегда записывается в виде: 1,m1m2… Т.е. целая часть всегда равна 1 и в форматах КВ и ДВ прямо в мантиссе не представляется, а учитывается неявно при выполнении операций. В формате ВВ старший бит мантиссы представляется явно.

2) Порядок также записывается в смещенном виде, однако величина смещения в разных форматах разная:

· в КВ – 27-1=12710=1778=7F16,

· в ДВ – 210-1=102310=17778=3FF16,

· в ВВ – 214-1=1638310=377778=3FFF16.

Отсюда величина смещенного порядка лежит в пределах:

· в КВ – 0 ≤ Pх ≤ 25410 = 3768 = FE16,

· в ДВ – 0 ≤ Pх ≤ 204610 = 37768 = 7FE16,

· в ВВ – 0 ≤ Pх ≤ 3276610 = 777768 = 7FFE16.

Получается, что для представления вещественных чисел используется только часть значений порядка. Так например, в форматах КВ и ДВ значение порядка FF16 и 7FF16 используется для кодирования ±∞, при этом в поле мантиссы все нули (+∞, если бит знака 0, -∞, если бит знака 1) и для обозначения «не чисел» (NAN – not a number), когда в поле мантиссы не нулевое значение.

Формат КВ (как и формат обычной точности в СМ ЭВМ) позволяет представить максимальное число ≈1038, формат ДВ уже – ≈10308, а формат ВВ – ≈104932. Точность представления чисел приближенно соответствует:

· в КВ – 7-8 значащих десятичных цифр,

· в ДВ – 15-16 значащих десятичных цифр,

· в ВВ – 19-20 значащих десятичных цифр.

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

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

В двоично-десятичной (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-кода для представления символьной информации.

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


Дата добавления: 2019-11-25; просмотров: 2892; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!