Материал: Методические указания к практическим занятиям по дисциплине «Модели безопасности компьютерных систем» для студентов специальности 090301 «Компьютерная безопасность». Гончаров И.В., Остапенко А.Г

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Практическое задание №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

Источник: https://studfile.net/preview/16565081/