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

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

Пример:

Сложить два числа (ЧПЗ) Z=X+Y для S = 2.

 

PX

qX

22*0.75=3(10)

X 010

0.11

 

PY

qY

21*0.5=1(10)

Y 001

0.10

 

 

 

 

 

 

 

1.010 0.01 - выравнивание порядка Y

2.+0.11 - qx

1.00

3.010 1.00 - ненормализованное значение Z

PZ

qZ

4. 011

0.10 - нормализованное значение Z

Z=011

0.10 = 23 * 0.5= 4(10)

Умножение ЧПЗ

Требуется вычислить Z=X*Y. Формальное выражение для выполнения этой операции можно записать следующим образом:

Z=X*Y=qxSPx*qySPy= qxqyS(Px+Py)=qzSPz

Алгоритм выполнения операции состоит в следующем:

1.Мантиссы сомножителей перемножаются;

2.Порядки сомножителей складываются;

3.Произведение нормализуется;

4.Произведению присваивается знак, в соответствии с алгоритмом, приведенным для ЧФЗ, а именно:

= = ( ) | | | |;

+, ( ) = ( ) ( ) = {−, ( ) ≠ ( )

24

Рассмотрим простейший раздельный алгоритм перемножения ЧПЗ.

Умножение ЧПЗ сводится к следующим операциям:

алгебраическое суммирование порядков - это операции над целыми числами или ЧФЗ с фиксацией точки справа от МЗР;

перемножение мантисс - это операции над правильными дробями или над ЧФЗ с фиксацией точки слева от СЗР;

определение знака произведения.

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

Рассмотрим пример перемножения двух чисел «младшими разрядами вперед» для случая, когда разрядная сетка результата соответствует разрядной сетке сомножителей.

Пример:

Вычислить Z=X*Y=0.1101(2) * 0.1011(2) = 0.8125(10) * 0.6875(10) = 0.55859375(10)

25

X=

0. 1 1 0 1

 

 

Y=

0. 1 0 1 1

 

 

 

 

 

 

 

0.1101

P1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.0110 1

сдвиг на 1 разряд вправо

 

 

 

+

 

 

 

 

 

0.1101

P2

 

1.0011 1

сумма P1 + P2

 

0.1001 11

сдвиг на 1 разряд вправо

 

+

 

 

 

 

 

 

0.0000

P3

 

 

 

 

0.1001 11

сумма P1+P2+P3

 

0.0100 111

сдвиг на 1 разряд вправо

+0.1101 P4

1.0001111 сумма P1+P2+P3+P4

0.10001111 сдвиг на 1 разряд вправо

+

0.0000

0.10001111 - результат

Таким образом, результат Z=0.1000(2)=0.5(10), поскольку последние четыре разряда потеряны.

Из примера видно, что если разрядная сетка ограничена числом разрядов X, то результаты правее вертикального пунктира не фиксируются после выполнения сдвигов. Таким образом, четыре младших разряда будут потеряны, и результат будет приближенный 0.1000(2). В ряде случаев используется округление по правилу: если старший из отбрасываемых разрядов содержит 1, то к младшему из сохранившихся разрядов добавляется 1. В данном примере получается число 0.1001(2).

Взаключение отметим следующее:

если мантисса X или Y равна 0, то перемножение не проводится и Z=0;

если при суммировании PX и PY возникло переполнение и PZ<0, то это означает, что Z меньше минимального представляемого в машине числа и Z присваивают 0 без перемножения мантисс;

26

если при суммировании PX и PY возникло переполнение и PZ>0, может оказаться, что Z все же находится в диапазоне представляемых в ЭВМ чисел, т.к. после нормализации полученного qZ переполнение в порядке может исчезнуть.

Задание и контрольные вопросы

Используя двоичные числа из таблицы ниже провести следующие расчеты:

провести нормализацию числа с фиксированной за-

пятой;

выполнить операцию сложения над первым и третьим числом, вторым и четвертым числом и затем над их суммами;

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

 

 

 

 

Таблица 4

 

Задания для вариантов

 

 

Варианты

1-5

6-10

11-15

16-20

 

ЧФЗ

110110

100100

111011

100111

 

Число 1

0.110101

0.101010

0.101111

0.111000

 

Число 2

0.010011

0.111000

0.001111

0.001100

 

Число 3

0.111011

0.001011

0.110011

0.001001

 

Число 4

0.000111

0.100100

0.000001

0.010111

 

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

27

Контрольные вопросы

1.Два варианта представление чисел с фиксированной точкой в ЭВМ.

2.Представление чисел с плавающей точкой в

ЭВМ.

3.Диапазон представления чисел с фиксированной

запятой.

4.Представление чисел с плавающей точкой в ЭВМ в общем виде (в виде формулы).

5.Алгоритм нормализации числа с плавающей за-

пятой.

6.Алгоритм сложения чисел с плавающей запятой.

7.Алгоритм умножения чисел с плавающей запя-

той.

8.Перемножения двух чисел в случае, когда разрядная сетка результата соответствует разрядной сетке сомножителей.

9.Особенности перемножения чисел с плавающей

запятой.

28

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