Деление
Реализация операции деления в ЭВМ в двоичной системе счисления выполняется проще, чем в десятичной. Это объясняется тем, что при определении каждой цифры частного нужно сделать только одну пробу.
Если числа 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|]дк
![1.110 = \alpha _{0} = [|X|]_{дк} + [-|Y|]_{дк} < 0, z_{0} = 0](/sites/default/files/tex_cache/b41c758f425347cb57c32282390fe390.png)

0.110 = [|Y|]дк
![0.010 = \alpha _{1} = 2\alpha _{0} + [|Y|]_{дк} > 0,\ z_{1} = 1](/sites/default/files/tex_cache/2507920940651ad258d316b1217d9a1a.png)

1.010 = [-|Y|]дк
![1.110 = \alpha _{2} = 2\alpha _{1} + [-|Y|]_{дк} < 0, z_{2} = 0](/sites/default/files/tex_cache/5054fb7304c951d0e155d5f888494670.png)

0.110 = [|Y|]дк
![0.010 = \alpha _{3} = 2\alpha _{2} + [|Y|]_{дк} > 0, z_{3} = 1](/sites/default/files/tex_cache/597e8c57cee153a9ae93ad5e466353c5.png)
Ответ: [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

