Деление
Реализация операции деления в ЭВМ в двоичной системе счисления выполняется проще, чем в десятичной. Это объясняется тем, что при определении каждой цифры частного нужно сделать только одну пробу.
Если числа X и Y заданы в прямом коде, и они представлены с фиксированной запятой, то для выполнения деления используются два основных алгоритма:
- со сдвигом и автоматическим восстановлением остатка ;
- со сдвигом делителя и автоматическим восстановлением остатка.
Пусть: [X]пк = sign X. x1x2..xn
[Y]пк = sign Y. y1y2..yn
[Z]пк = [X]пк/[Y]пк = sign Z. z1z2..zn
X и Y должны быть такими, чтобы:
|Z| < 1 (то есть фиксированная запятая )
Деление в прямом коде со сдвигом и автоматическим восстановлением остатка
-
Если , то z0 = 1 и ( z0 – целая часть результата).
Если , то z0 = 0 и
и т. д.
Пример:
+0.100 = [|X|]дк
1.010 = [-|Y|]дк
0.110 = [|Y|]дк
1.010 = [-|Y|]дк
0.110 = [|Y|]дк
Ответ: [Z]пк = 1.101
Деление в прямом коде со сдвигом делителя и автоматическим восстановлением остатка
-
Если , то z0 = 1.
Если , то z0 = 0.
Разрядная сетка (n + d) разрядов, где d = log2n
Пример:
1) [X]пк = 1.1001 2) [Y]пк = 1.1011 n = 4, d = 2
Ответ: [Z]пк = 0.1100