Главная
Случайная страница
Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Деление в дополнительном (обратном) кодах со сдвигом и автоматическим восстановлением остатка
[X]дк,ок; [Y]дк,ок
Деление в ОК не применяется, так как "0" в ОК имеет двойное изображение. В первом такте вместо sign i-1 берётся sign X, а вместо 2 i-1 берётся [X]дк,ок
Пример:
[X]дк = 1.0111 [Y]дк = 1.0011 Т.к. sign X = sign Y,то +1.0111 | 1.0011
0.1101 = -[Y]дк
______
0.0100 = 0 = [X]дк + [-[Y]дк ]дк, sign 0 sign Y, то z0 = 0
2 0 = +0.1000
Т.к. sign 0 sign Y, то
1.0011 = [Y]дк
______
1.1011 = 1 = 2 0 + [Y]дк, т.к. sign 1 = sign Y, то z1 = 1
2 1 = +1.0110
Т.к. sign 1 = sign Y, то
0.1101 = +[-[Y]дк ]дк
______
0.0011 = 2 = 2 1 + [-[Y]дк ]дк, т.к. sign 2 sign Y, то z2 =0
2 2 = +0.0110
Т.к. sign 2 sign Y, то
1.0011 = [Y]дк
______
1.1001 = 3 = 2 3 + [Y]дк, т.к. sign 3 = sign y, то z3 = 1
2 3 = +1.0010
Т.к. sign 3 = signY, то
0.1101 = +[-[Y]дк ]дк
______
1.1111 = 4 = 2 3 + [-[Y]дк ]дк, т.к. sign 4 = sign Y, то z4 = 1
Ответ: [Z]дк = 0.1011
Это справедливо при 1 [Z]дк = [X]дк / [Y]дк ]| < 1.
Если необходимо определить частное |[Z]дк = [X]дк / [Y]дк | | < 2, то поступают так:
[X]дк*2-1 / [Y]дк = z0z1z2...zn, z0 – знак, z1 – целая часть числа.
Арифметические операции над числами, представленными с плавающей запятой
В основе арифметических операций над числами с плавающей запятой лежат принципы, на которых базируются операции над числами с фиксированной запятой. При этом есть и некоторые особенности.
Будем условно считать, что порядки заданы в обратном коде, а мантиссы – в прямом.
Умножение:
X = 2mx * sign X.x1x2...xnY = 2my * sign Y.y1y2...ynZ = X*Y = 2mx+my * sign Z.z1z2...zn Порядок выполнения операции следующий:
1. Знак произведения находится так же, как и при умножении чисел с фиксированной запятой:
- Порядок произведения находится алгебраическим суммированием порядков множимого и множителя.
3. Мантисса находится по правилам умножения чисел с фиксированной запятой.
При этом возможны следующие случаи:
o Мантисса произведения – ненормализованное число, так как
o ½ |Mx| < 1,o ½ |My| < 1, то o ¼ |Mx*My| < 1, при ¼ |Mx*My| < ½ o имеем ненормализованное число. Поэтому необходима нормализация влево максимум только на один разряд.
С этой целью нужно сдвинуть мантиссу влево на один разряд. Это соответствует умножению числа на 21. Для того чтобы число не увеличилось в два раза, нужно из порядка вычесть единицу.
o При умножении двух чисел в силу ограниченности разрядной сетки можно получить число, которое не может быть в ней представлено. Это соответствует получению машинной бесконечности.
В данном случае вырабатывается специальный признак, по которому дальнейшие вычисления прекращаются.
o При умножении двух чисел можно получить минимальное число, которое также не может быть представлено в разрядной сетке. Это соответствует случаю, когда получаемое число должно быть интерпретировано как нуль.
Деление
В основном аналогично умножению:
X = 2mx * sign X.x1x2...xnY = 2my * sign Y.y1y2...ynZ = X/Y = 2mx–my * sign Z.z1z2...zn Порядок выполнения операции следующий:
- Находится по известным правилам знак частного.
- Порядок частного находится как разность порядков делимого и делителя.
3. Цифры частного находятся так:
вначале находится целая часть мантиссы, то есть |Mx| - |My| = 0
Если 0 0, то z0 = 1, если 0 < 0, то z0 = 0.
Дробная часть мантиссы находится так же, как при операциях над числами с фиксированной запятой. Такой порядок действий вытекает из того, что:
½ |Mx| < 1,½ |My| < 1,2-1 < |Mx / My| < 2 То есть, возможно получение ненормализованной мантиссы. Для нормализации мантиссу необходимо сдвинуть вправо на один разряд и, чтобы не уменьшать при этом результат в два раза, нужно прибавить к порядку одну единицу.
При делении, так же, как и при умножении, возможно получение кода машинного нуля и кода бесконечности.
|
|
|
Date: 2016-05-14; view: 720; Нарушение авторских прав Понравилась страница? Лайкни для друзей: |
|
|