Опубликован: 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 >
Жаксылык Несипов
Жаксылык Несипов
Людмила Долгих
Людмила Долгих

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

Семён Огай
Семён Огай
Казахстан, Алматы
Виталий Лусников
Виталий Лусников
Россия, Киров, ВятГГУ, 2001