- •Глава 2. Формы представления и способы обработки машинных слов в мп сау.
- •2.1 Формы представления чисел в технических устройствах.
- •2.2 Точность и диапазон представления числовой информации в разрядной сетке с фиксированной запятой.
- •2.3 Представление чисел в разрядной сетке с плавающей запятой.
- •2.4 Алгоритмы обработки кодированной информации в арифметических устройствах.
- •2.4.1 Логический алгоритм формирования дополнительного кода отрицательных чисел.
- •2.5 Аксиомы, сопровождающие суммирование дополнительных кодов.
- •2.5.1 Сумматор дополнительных кодов.
- •2.5.2 Алгоритм формирования обратного кода. Арифметические и логические варианты алгоритмов.
- •2.5.3 Сумматор обратных кодов (циклический сумматор), аксиомы обработки обратных кодов.
- •2.5.4 Блок схема суммирования двоичной информации в форме с плавающей запятой
- •2.6 Выполнение длинных операций (* и /) над арифметическими кодами.
2.6 Выполнение длинных операций (* и /) над арифметическими кодами.
1. Алгоритм умножения с фиксированной запятой.
конец
идти
i<n
Yi=1
i
= i+1
Сдвиг
кода множимого вправо
i
= i+1
Анализ
содержимого кода множителя
Формирование
знака произведения [X]зн.+[Y]зн.
Ввод
прямых кодов операндов X
и Y
начало
1
2
3
4
7
5 Нет
9
Да 6
10
12
Да
8
Передача
кода множителя Х в сумматор
Нет
Пример: X = -0,1011 [X]пр.=1 1011
Y = 0,1001 [Y]пр.=0 1001
Знак Х |
Знак Y |
Код [X]зн. |
Код [Y]зн. |
Код [X+Y]зн. |
+ |
+ |
0 |
0 |
0 |
+ |
- |
0 |
1 |
1 |
- |
+ |
1 |
0 |
1 |
- |
- |
1 |
1 |
0 |
[X*Y]зн.
ОДС
1011
1001
1011
1011
[X]зн. [Y]зн.
,1100011
[X*Y]пр.= 1,0110
Деление операндов в форме с фиксированной запятой сводят к циклической процедуре вычитания делителя из делимого, и сдвига делителя вправо в зависимости от содержимого кода делимого:
Пример: X/Y
X = 0,11011101 [X]пр.= 0 11011101
Y = -0,10010000 [Y]пр.= 1 10010000
[X-Y]пр.= 1,110001
11011101 1001
1001 1100 01
1001
1001
1010
1001
10
При выполнении длинных операций над кодами с фиксированной запятой возможны потери информации из-за отсутствия физических носителей для части кодов результата. Потери точности к которой ведет указанная причина можно избежать, используя алгоритм умножения с плавающей запятой:
Шаг 1.
Знак произведения получаются суммированием содержимого знаковых разрядов мантисс.
[X*Y]зн.~[mX]зн.+[mY]зн.
Шаг 2.
Порядок произведения так же равен сумме порядков сомножителей.
Px-y= Px+ Py
Шаг 3.
Мантисса произведение, получается, по алгоритму умножения чисел в режиме с фиксированной запятой.
Шаг 4.
При необходимости восстановления нормальной формы мантиссы производится нормализация.
Нормализация мантисс mxy
X = 0, 1101*10-111 Px= -111 Px-y= 100
Y = -0,1010*101011 Py= 1011 X*Y= -0,100000*10100
[mx]пр.= 0 1101
[my]пр.=
1 1010
1101
1101
0,10000010
Алгоритм деления.
Шаг 1.
[x/y]зн.= [mx]зн.+ [my]зн.
Px/y= Px-Py
mx/y (мантисса частного получается используя цикл процедур вычитания и сдвига)
нормализовать mx/y (при необходимости нормализации)
X = -0,11011111*101101 Px/y = Px – Py = 100
Y = -0,10010001*101001
11011111 10010001
10010001 11……..
10011100
10010001
101
X/Y = +0.11*10100
Вопросы для самоконтроля знаний по материалам главы 2.
1.Назовите разновидности разрядных сеток для представления чисел в технических системах?
2. Какие поля содержит разрядная сетка для представления чисел с фиксированной запятой?
3. Какие поля содержит разрядная сетка для представления чисел с плавающей запятой?
4.
