Формат с фиксированной точкой
ТЕМА 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,81б и В = -32008,510 = -7D08,81б.
Для этого найдем нормализованные мантиссы и смещенные порядки:
Для В ЕС ЭВМ: 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!