Практическое задание №3 Числа с фиксированной и плавающей запятой
Цель практической работы заключается в изучении способов работы и методов представления чисел с фиксированной и плавающей запятой.
Задачи практического задания:
рассмотреть способы представления чисел с фиксированной и плавающей запятой в ЭВМ;
изучить алгоритм нормализации числа с плавающей точкой;
изучить алгоритм сложения чисел с плавающей точкой;
изучить алгоритм умножения чисел с плавающей точкой.
Теоретические сведения
В ЭВМ числа представлены в двоичной форме и под число отводится N разрядов. N-разрядное двоичное число называют машинным словом. Диапазон представления чисел можно расширить за счет использования машинных слов двойной и тройной длины. Но увеличение длины слова не может разрешить всех проблем представления чисел. Рассмотрим как обращаться с дробной частью числа, как представлять очень большие и очень маленькие числа.
В зависимости от типа ЭВМ, используют две формы представления чисел [4]:
числа с плавающей запятой (точкой), которые сокращенно называются ЧПЗ;
числа с фиксированной запятой (ЧФЗ), которые подразделяются по месту фиксации запятой на:
- слева от СЗР (дробные |X| < 1);
-справа от МЗР (целые).
19
Числа с фиксированной запятой
Используют два варианта представления целых чисел - со знаком и без знака. В последнем случае все разряды служат для представления модуля числа. В ЕС-ЭВМ реализуются оба этих варианта в формате слова и полуслова.
Вес |
|
|
|
214 |
213 |
21 |
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
знак |
|
|
. . . |
|
|
Номер разряда |
|
|
15 |
14 |
13 |
1 |
0 |
|
|
||||||||
Вес |
|
|
|
26 |
25 |
21 |
20 |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
знак |
|
|
. . . |
|
|
Номер разряда |
|
|
7 |
6 |
5 |
1 |
0 |
|
|
||||||||
Рис. 5. Формат представления целых чисел в мини- и микро-ЭВМ
Рассмотрим диапазон представления чисел с фиксированной запятой (только целых чисел, т.е. точка фиксирована справа от МЗР). Если в разрядной сетке N разрядов, то под модуль числа отводится N-1 разряд (число со знаком). Самое большое по модулю число, записанное в такой сетке, имеет вид:
N-2 |
0 |
Номер разряда |
|
|
|||
|X|max = 1 1 1 1 . . . 1 |
|
||
+ |
1 |
|
|
|
|
|
|
|
|
=2N-1; |X|max +1 = 2N-1 |
|
N-1 1 0 0 0 0 . . . 0 |
|||
разряд |
|
|
|
Следовательно, |
|X|max = 2N-1 -1 или 0 |X| 2N-1 - 1. |
||
При записи отрицательных чисел в дополнительном коде наибольшее по модулю отрицательное число - это -2N-1. Но модуль этого числа при такой же разрядной сетке (N бит) получить уже нельзя. Поэтому диапазон представления десятич-
20
ных чисел N-разрядным двоичным числом определяется следующим выражением:
-2N-1X 2N-1-1
В табл. 3 приведены диапазоны представления десятичных чисел 8-, 16- и 32разрядными двоичными числами.
Таблица 3 Диапазоны представления десятичных чисел 8-, 16- и 32разрядными двоичными числами
N |
8 |
16 |
32 |
|
|
|
|
Xmax |
127 |
32767 |
109 |
|
|
|
|
Xmin |
-128 |
-32768 |
-109 |
|
|
|
|
В настоящее время представление чисел с фиксированной запятой используется как основное и единственное лишь в сравнительно небольших по своим вычислительным возможностям машинах. Подобные ЭВМ применяют в системах передачи данных, для управления технологическими процессами, для обработки измерительной информации в реальном масштабе времени, для построения кодирующих и декодирующих устройств в каналах связи. В ЭВМ общего назначения основным является представление чисел с плавающей запятой.
Числа с плавающей запятой
Представление чисел в виде ЧПЗ позволяет избавиться от операции масштабирования при вычислениях, поскольку диапазон представляемых чисел существенно расширяется по сравнению с ЧФЗ. Однако, в большинстве ЭВМ общего назначения, для целых чисел сохраняется возможность представления в виде ЧФЗ. Операции с ЧФЗ всегда выполняются за
21
меньшее время, чем операции с ЧПЗ. В частности, к операциям с целыми числами сводятся операции над кодами адресов (операции индексной арифметики).
Представление чисел с плавающей запятой в общем случае имеет вид:
X = SP*q; |
|q|<1, |
где q - мантисса (правильная дробь со знаком), p - порядок (целое число со знаком),
S - основание,
SP - характеристика.
В ЭВМ q и p представлены в системе счисления с основанием S в соответствующей двоичной кодировке. Знак числа совпадает со знаком мантиссы. Порядок может быть как положительным так и отрицательным и определяет положение точки в числе X. Арифметические действия над ЧПЗ требуют, помимо действий с мантиссами, определенные операции над порядками (сравнение, вычитание и др.) [1].
При фиксированном числе разрядов мантиссы любая величина представляется в ЭВМ нормализованным числом с наибольшей возможной точностью. Число называется нормализованным, если мантисса q удовлетворяет условию: 1>|q| 1/S, т.е. старший разряд мантиссы в S-ричной системе счисления отличен от нуля, иначе число ненормализованно. Так, например, в десятичной системе счисления число 0.00726*10-3 - ненормализовано, а число 0.726*10-5 - нормализовано.
Пусть r старших разрядов S - ричной мантиссы равны нулю. Тогда нормализация состоит из:
-сдвиг мантиссы на r разрядов влево;
-уменьшение PСМ на r единиц;
-в r младших разрядов мантиссы записываются 0.
При этом число не изменяется, а условия нормализации выполняются.
22
Пример:
Нормализовать двоичное число. Ненормализованное двоичное число:
001*0.010=(21*0.25)(10)=0.5(10) p q
Нормализованное двоичное число:
Pнорм=p-1; q - сдвиг на 1 разряд влево
000*0.100=(20*0.50)(10)=0.5(10)
pнорм qнорм
Сложение (вычитание) ЧПЗ
Требуется вычислить Z=X Y, при условии, что |X||Y|. Формальное выражение для выполнения этой операции можно записать следующим образом:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
= ± = |
± |
= ( ± |
|
|
) = |
||||
|
( − ) |
||||||||
|
|
|
|
|
|
|
|
|
|
= |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Алгоритм выполнения операции состоит в следующем:
1.Производится выравнивание порядков. Порядок меньшего по модулю числа принимается равным порядку большего, а мантисса меньшего числа сдвигается вправо на число S-ричных разрядов, равное разности (Px-Py), т.е. происходит денормализация.
2.Производится сложение (вычитание) мантисс, в результате чего получается мантисса суммы (разности).
3.Порядок результата равен порядку большего числа.
4.Полученный результат нормализуется.
23