Опубликован: 30.03.2005 | Уровень: специалист | Доступ: свободно | ВУЗ: Национальный исследовательский ядерный университет «МИФИ»
Лекция 9:

Деление

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Аннотация: В лекции даны методы деления чисел с фиксированной запятой в прямых кодах и дополнительных (обратных) кодах. Описаны операции над числами с плавающей запятой – умножение, деление, сложение, вычитание.

Реализация операции деления в ЭВМ в двоичной системе счисления выполняется проще, чем в десятичной. Это объясняется тем, что при определении каждой цифры частного нужно сделать только одну пробу.

Если числа X и Y заданы в прямом коде, и они представлены с фиксированной запятой, то для выполнения деления используются два основных алгоритма:

  • со сдвигом и автоматическим восстановлением остатка ;
  • со сдвигом делителя и автоматическим восстановлением остатка.

Пусть: [X]пк = sign X. x1x2..xn

[Y]пк = sign Y. y1y2..yn

[Z]пк = [X]пк/[Y]пк = sign Z. z1z2..zn

X и Y должны быть такими, чтобы:

|Z| < 1 (то есть фиксированная запятая )

Деление в прямом коде со сдвигом и автоматическим восстановлением остатка

  1. \[ sign\ Z = sign\ X \oplus sign\ Y \]
  2. \[ |X| - |Y| = \alpha _{0} \]
  3. Если \[ \alpha _{0} \ge 0 \] , то z0 = 1 и \[ 2\alpha _{0} - |Y| = \alpha _{1} \] ( z0 – целая часть результата).

    Если \[ \alpha _{0} < 0 \] , то z0 = 0 и \[ 2\alpha _{0} + |Y| = \alpha _{1} \]

и т. д.

Пример:

\[ \lbrack X \rbrack_{пк} = 0.100\\ \lbrack Y \rbrack_{пк} = 1.110\\ sign\ Z = 1 \oplus 0 = 1\\ \lbrack-|Y| \rbrack_{дк} = 1.010 \]

+0.100 = [|X|]дк

1.010 = [-|Y|]дк

\[ 1.110 = \alpha _{0} = [|X|]_{дк} + [-|Y|]_{дк} < 0, z_{0} = 0 \]

\[ _{+}1.100 = 2\alpha _{0} (сдвиг\ в\ ДК\ отрицательного\ числа) \]

0.110 = [|Y|]дк

\[ 0.010 = \alpha _{1} = 2\alpha _{0} + [|Y|]_{дк} > 0,\ z_{1} = 1 \]

\[ _{+}0.100 = 2\alpha _{1} \]

1.010 = [-|Y|]дк

\[ 1.110 = \alpha _{2} = 2\alpha _{1} + [-|Y|]_{дк} < 0, z_{2} = 0 \]

\[ _{+}1.100 = 2\alpha _{2} (сдвиг\ в\ ДК\ отрицательного\ числа) \]

0.110 = [|Y|]дк

\[ 0.010 = \alpha _{3} = 2\alpha _{2} + [|Y|]_{дк} > 0, z_{3} = 1 \]

Ответ: [Z]пк = 1.101

Деление в прямом коде со сдвигом делителя и автоматическим восстановлением остатка

  • \[ sign\ Z = sign\ X \oplus sign\ Y \]
  • \[ |X| - |Y| = \alpha _{0} \]
  • Если \[ \alpha _{0} \ge 0 \] , то z0 = 1.

    Если \[ \alpha _{0} < 0 \] , то z0 = 0.


Разрядная сетка (n + d) разрядов, где d = log2n

Пример:

1) [X]пк = 1.1001
2) [Y]пк = 1.1011
n = 4, d = 2

Ответ: [Z]пк = 0.1100

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Жаксылык Несипов
Жаксылык Несипов
Людмила Долгих
Людмила Долгих

Здравствуйте. В первой лекции курса "Логические и арифметические основы и принципы работы ЭВМу вас приведена классическая структурная схема ЭВМ. Если можно уточните, а как в классической архитектуре могла реализоваться прямая работа устройств ввода-вывода с оперативной памятью?  Если я правильно понимаю - это режим прямого доступа к памяти, в классической архитектуре он не предусмотрен.