Умножение и деление чисел с ФЗ

Содержание

Слайд 2

Умножение чисел с фиксированной запятой, заданных в прямом коде

Умножение чисел с фиксированной запятой, заданных в прямом коде

Слайд 3

Xпк = Зн Х.|Х| Yпк = ЗнY.|Y| = Зн.Y. (y1y2...yn) Zпк

Xпк = Зн Х.|Х|
Yпк = ЗнY.|Y| = Зн.Y. (y1y2...yn)
Zпк = Xпк*

Yпк = ЗнZ.|Z| = Зн.Z. (z1z2...zm)
Слайд 4

|Z| = |Х| * |Y| = |Х| *(y12-1+ y22-2 +...+ yn2-n

|Z| = |Х| * |Y| = |Х| *(y12-1+ y22-2 +...+ yn2-n

) =
=|Х| y1 * 2-1+ |Х| y2 2-2 +... +|Х| yn-1 2-n-1+ |Х| yn 2-n = (1)
= ((...((0+ |Х| yn) *2-1 +|Х| yn-1) *2-1 + ... + |Х| y2) *2-1 + y1 |Х|) *2-1 (2)
Формула (1) – описывает умножение со старших разрядов множи-теля, а формула (2) – с младших разрядов:
Ai = Ai-12-1 + |X| yn+1-i
An = |X| * |Y| =|Z|
Слайд 5

Исходное число: Результат:

Исходное число:

Результат:

Слайд 6

Исходное число:

Исходное число:

Слайд 7

Умножение чисел с фиксированной запятой, заданных в дополнительном коде

Умножение чисел с фиксированной запятой, заданных в дополнительном коде

Слайд 8

Умножение чисел с фиксированной запятой с младших разрядов в дополнительном коде

Умножение чисел с фиксированной запятой с младших разрядов в дополнительном коде
Алгоритм.
[Z]дк

= (…(0+[X]дк*[yn+1 – yn])*2-1 + [X]дк*[yn – yn-1])*2-1 +…+ + [X]дк*[y2 – y1])*2-1 + [X]дк*[y1 – y0]
Если yi = yi+1, то производится сдвиг частичного произведения.
Если yi = 0 и yi+1 = 1, то к частичному произведению прибавляется [X]дк
Если yi = 1 и yi+1 = 0, то к частичному произведению прибавляется [-[X]дк] дк.
В качестве y0 берётся знак числа.
yn+1 ≡ 0
Слайд 9

Умножение чисел с фиксированной запятой со старших разрядов в дополнительном коде

Умножение чисел с фиксированной запятой со старших разрядов в дополнительном коде
Алгоритм:
[Z]дк

= [X]дк * [Y]дк = [X]дк * (y1 – y0) + [X]дк * (y2 – y1)*2-1 + … + + [X]дк * (yn+1 – yn)*2-n
Если yk = 0 и yk-1 = 1, то к частичному произведению прибавляется [X]дк, сдвинутый на k разрядов вправо
Если yk = 1 и yk-1 = 0, то к частичному произведению прибавляется [-[X]дк] дк, сдвинутый на k разрядов вправо
Если yk = yk-1, то на этом шаге [X]дк не участвует в формировании произведения.
В качестве y0 берётся знак числа.
yn+1 ≡ 0.
Слайд 10

Исходное число: Результат:

Исходное число:

Результат:

Слайд 11

Исходное число:

Исходное число:

Слайд 12

ДЕЛЕНИЕ ЧИСЕЛ С ФИКСИРОВАННОЙ ЗАПЯТОЙ

ДЕЛЕНИЕ ЧИСЕЛ С ФИКСИРОВАННОЙ ЗАПЯТОЙ

Слайд 13

Деление чисел с фиксированной запятой, заданных в прямом коде

Деление чисел с фиксированной запятой, заданных в прямом коде

Слайд 14

Xпк = Зн Х.|Х| Yпк = ЗнY.|Y| Zпк = Xпк /

Xпк = Зн Х.|Х|
Yпк = ЗнY.|Y|
Zпк = Xпк / Yпк =

ЗнZ.|Z| = Зн.Z. (z1z2...zm...)

|Z| = |Х| / |Y| = 0. z1z2...zm...

Слайд 15

Деление чисел с фиксированной запятой, заданных в прямом коде со сдвигом остатка и его автоматическим восстановлением

Деление чисел с фиксированной запятой, заданных в прямом коде со сдвигом

остатка и его автоматическим восстановлением
Слайд 16

α0 = |X| - |Y| Если α0 ≥ 0, то |X|

α0 = |X| - |Y|
Если α0 ≥ 0, то |X| ≥

|Y| и |Z| ≥ 1. => Z = ∞.

Деление проводится в n-разрядной сетке с 2 знаковыми разрядами.

Слайд 17

Деление чисел с фиксированной запятой, заданных в прямом коде со сдвигом делителя и автоматическим восстановлением остатка

Деление чисел с фиксированной запятой, заданных в прямом коде со сдвигом

делителя и автоматическим восстановлением остатка
Слайд 18

α0 = |X| - |Y| Если α0 ≥ 0, то |X|

α0 = |X| - |Y|
Если α0 ≥ 0, то |X| ≥

|Y| и |Z| ≥ 1. => Z = ∞.

Деление проводится в 2n-разрядной сетке с 1 знаковым разрядом.

Слайд 19

Деление чисел с фиксированной запятой, заданных в дополнительном коде

Деление чисел с фиксированной запятой, заданных в дополнительном коде

Слайд 20

Деление чисел с фиксированной запятой, заданных в дополнительном коде со сдвигом и автоматическим восстановлением остатка

Деление чисел с фиксированной запятой, заданных в дополнительном коде со сдвигом

и автоматическим восстановлением остатка