- •Самарский государственный технический университет
- •Представление чисел с плавающей точкой
- •Прямой, обратный, дополнительный коды
- •Представление символьной информации
- •Преобразование информации на машинном уровне
- •Сложение целых чисел
- •Вычитание целых чисел
- •Сложение и вычитание действительных чисел
- •Умножение и деление чисел
- •Обработка символьной информации
- •Работа с программой "Формы представления данных и преобразование информации в эвм"
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Библиографический список
Представление чисел с плавающей точкой
Форма представления чисел с плавающей точкой (фпт) в ЭВМ является основной Она позволяет оперировать действительными числами в значительно более широком диапазоне, чем в ффт.
В общем случае двоичное число в фпт может быть записано в полулогарифмической форме:
x = M∙2P,
где M– мантисса (правильная дробь со знаком в формате ффт с точкой перед старшим разрядом);
P– порядок (целое со знаком), который определяет положение точки в числе х.
Формат представления чисел в фпт приведен на рис.3. В таком формате, как правило, крайний левый бит определяет знак числа (мантиссы), следующая за ним группа из mбитов – порядок со знаком, а остальныеn битов – модуль мантиссы. Знак кодируется так же, как и в ффт : 0 соответствует знаку "+" , 1 – знаку " – ".
-
Зн
Порядок
Мантисса
1 бит
m бит
n бит
Рис.3. Общий формат представления чисел с плавающей точкой.
Действия над числами в фпт требуют выполнения операций как над мантиссой, так и над порядком. Для упрощения операций над последними их представляют в смещенном коде, что позволяет работать с порядками, как с целыми числами без знака (положительными числами).
Смещенный порядок Рсм, который чаще называют характеристикой, получают прибавлением к Р смещенияN = 2m - 1, т.е.
Рсм = Р + 2m - 1.
Если, в частности, под порядок со знаком отводится 8 разрядов, то смещение равно N = 27=128, или в двоичном коде 10000000. Отсюда при Р = -128 ÷ +127 характеристика будет лежать в диапазоне Рсм = 0 ÷ 255, или в двоичном коде 00000000 ÷ 11111111.
Нулевое значение старшего разряда характеристики говорит о том, что порядок Р отрицателен, а единичное значение – наоборот, о том, что порядок Р положителен.
Так как под мантиссу отводится фиксированное число битов, то для получения максимальной точности используются нормализованные числа. Процедура нормализации сводится традиционно к выполнению условия:
2-1 ≤ М< 1,
которому соответствует мантисса с единичным старшим разрядом.
Если в процессе вычислений получается ненормализованное число, оно автоматически нормализуется по правилу: если dстарших битов мантиссы нулевые (после точки), то производится ее сдвиг наdбитов влево (при этомdмладших битов обнуляются) с одновременным уменьшением порядка наdединиц; если появился перенос из старшего разряда мантиссы (целая часть мантиссы равна 1), то порядок увеличивают на единицу, а М сдвигается вправо на 1 разряд.
Диапазон представления чисел в фпт находится в прямой зависимости от числа разрядов, отведенных под порядок, а точность вычислений – от количества битов мантиссы.
В виду различных требований, предъявляемых к точности вычислений, в ЭВМ используются несколько форматов для представления чисел в фпт. Наиболее часто применяются два из них: короткий (4 байта) и длинный (8 байтов). Они имеют следующий вид:
-
а)
ЗнПорядок
Мантисса
31
30 23
22 0
-
б)
ЗнПорядок
Мантисса
63
62 52
51 0
Рис.4. Короткий (а) и длинный (б) форматы чисел с плавающей точкой
В коротком формате под порядок отводится 1 байт, под мантиссу – 23 бита, а в длинном формате под порядок отводится 11 бит, под мантиссу – 52 разряда.
В настоящее время для представления чисел в фпт используется более удобный стандарт, который для получения характеристики использует смещение
N = 2m–1 –1
и условие нормализации числа вида:
1≤ М < 2.
В этом случае нормализованная мантисса представляется двоичным кодом с подразумеваемой целой частью, равной единице. В разрядной сетке этот бит не указывается и в памяти ЭВМ не хранится, а при выполнении операций восстанавливается, т.е. по существу это "скрытый" разряд. В результате обеспечивается фактическая точность представления чисел в указанных форматах соответствующим мантиссам с 24 и 53 битами, т.е. выше в два раза.
Например, необходимо представить в новом стандарте число 7.375 = 1.11011∙1010(здесь и основание системы счисления, и порядок записаны в двоичной системе).
Если используется короткий формат, то хранимая мантисса числа равна 11011 (целая часть скрыта), а величина смещения – N = 27-1 = 127. Таким образом, характеристика Рсм= 2+127 = 129, или в двоичной системе Рсм = 10000001. Поскольку число положительное, бит знакового разряда равен нулю. Поэтому число 7.375 в фпт в коротком формате нового стандарта имеет вид:
-
0
10000001
11011000000000000000000
31
30 23
22 0
Диапазоны представления действительных чисел в новом стандарте приведены в табл.1.