деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде

14 Деление чисел с фиксированной запятой без восстановления остатка

14.1 Алгоритм деления без восстановления остатка

Метод деления бинарных чисел без восстановления промежуточных остатков выполняется в последовательности:

-представить числа (операнды) в дополнительном коде в машинном изображении, делимое (всегда), независимо от его знака, берется в прямом коде с положительным знаком, а делитель (всегда), независимо от его знака, берется в дополнительном коде с отрицательным знаком;

-устраняем дробную часть в делителе, перенося запятую вправо на n разрядов (по аналогии с десятичной системой счисления) и, чтобы дробь не изменилась, в делимом также переносим вправо запятую на n разрядов;

-начиная со старших разрядов, к делимому прибавляют делитель в дополнительном коде, что равносильно вычитанию из делимого делителя и анализируют знак промежуточного остатка:

1) если знак промежуточного остатка 00 (положительный), то в регистр частного РгС записывается 1, начиная со старшего разряда. Остаток сдвигается на один разряд влево (знаковую точку перенести вправо на один разряд), сносится последующий разряд делимого не участвующий до этого в делении. После этого, промежуточный остаток подготовлен к последующему прибавлению делимого в дополнительном коде;

2) если знак промежуточного остатка 11 (отрицательный), то в регистр частного Рг.С записывается 0, начиная со старшего разряда. Остаток сдвигается на один разряд влево (знаковую точку перенести вправо на один разряд), сносится последующий разряд делимого не участвующий до этого в делении. После этого, промежуточный остаток подготовлен к последующему прибавлению к нему делимого в прямом коде со знаком 00;

-действия предыдущего пункта повторяются до получения машинного нуля или заданной точности вычисления (количество разрядов дроби после запятой целой части числа). Запятая дроби устанавливается в частном после сноса последнего разряда целой части делимого.

— знак результату присваивается в соответствии с пунктом 1. Результат деления представлен в регистре частного в прямом коде.

ПРИМЕР. Разделить на сумматоре дополнительного кода числа:

-устанавливаем регистры РгА, РгВ и См в нулевое (исходное) состояние, очистив их от предыдущей информации;

-преобразуем десятичные числа в бинарные, прямые и дополнительные коды.

Апр.=00.10000,01; Впр.=11.11,01; Впр.вос.=00.11,01; В м доп.= 11.00,11

Для вычитания используем В м доп.= 11.00,11.

Решение приведено в таблице 14.1.

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

14.2 Деление чисел с плавающей запятой

Деление мантисс производится в таком же порядке, как и в формате с фиксированной запятой. При этом, используются методы с восстановлением остатка и без восстановления остатка. Результату присваивается порядок Рс.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Источник

Деление чисел с фиксированной запятой в прямом и дополнительном кодах

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

В наиболее распространенных в настоящее время ЭВМ с системой команд X86 или IA-32 деление производится над числами с фиксированной точкой со знаком или без знака форматом байт или слово. При этом результат получается в виде целой части и остатка, причем каждая часть результата занимает фиксированное число байт.

Очевидно, что такой подход не может быть использован при делении чисел с фиксированной запятой, так как он предполагает, что, в общем случае, частное имеет целую часть, большую нуля, а это противоречит определению формата числа с фиксированной запятой. Для чисел, заданных в таком формате, будем исходить из следующих общих условий, не связанных со структурой конкретной ЭВМ:

Эти положения позволяют адаптировать предлагаемые алгоритмы деления к ЭВМ с произвольной архитектурой, в том числе, длине слова.

Деление чисел, заданных в прямом коде

Рассмотрим варианты деления чисел для случая, когда делимое и делитель представлены в прямом коде. При любом алгоритме деления в прямом коде чисел с фиксированной запятой результат, в общем случае, получается

При любом алгоритме деления в прямом коде чисел с фиксированной запятой результат, формируется поразрядно и так же, как и операнды, в прямом коде. Из этого следует, что в общем случае он формируется «с недостатком», так как какая-то дальнейшая цифра после прекращения выполнения операции может оказаться равной единице, тем самым увеличивая полученный результат. Это свойство может быть использовано для текущей проверки получаемых в ходе вычислений значений.

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

На первом этапе проводится определение знака частного:

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

Затем сравниваем абсолютные величины делимого и делителя.

Если α0 ≥ 0, то |X| ≥ |Y|. Следовательно, для чисел с фиксированной запятой Z = ∞, и дальнейшее деление не имеет смысла.

Источник

Деление чисел с фиксированной запятой в прямом и дополнительном кодах

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

В наиболее распространенных в настоящее время ЭВМ с системой команд X86 или IA-32 деление производится над числами с фиксированной точкой со знаком или без знака форматом байт или слово. При этом результат получается в виде целой части и остатка, причем каждая часть результата занимает фиксированное число байт.

Очевидно, что такой подход не может быть использован при делении чисел с фиксированной запятой, так как он предполагает, что, в общем случае, частное имеет целую часть, большую нуля, а это противоречит определению формата числа с фиксированной запятой. Для чисел, заданных в таком формате, будем исходить из следующих общих условий, не связанных со структурой конкретной ЭВМ:

Эти положения позволяют адаптировать предлагаемые алгоритмы деления к ЭВМ с произвольной архитектурой, в том числе, длине слова.

Деление чисел, заданных в прямом коде

Рассмотрим варианты деления чисел для случая, когда делимое и делитель представлены в прямом коде. При любом алгоритме деления в прямом коде чисел с фиксированной запятой результат, в общем случае, получается

При любом алгоритме деления в прямом коде чисел с фиксированной запятой результат, формируется поразрядно и так же, как и операнды, в прямом коде. Из этого следует, что в общем случае он формируется «с недостатком», так как какая-то дальнейшая цифра после прекращения выполнения операции может оказаться равной единице, тем самым увеличивая полученный результат. Это свойство может быть использовано для текущей проверки получаемых в ходе вычислений значений.

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

На первом этапе проводится определение знака частного:

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

Затем сравниваем абсолютные величины делимого и делителя.

Если α0 ≥ 0, то |X| ≥ |Y|. Следовательно, для чисел с фиксированной запятой Z = ∞, и дальнейшее деление не имеет смысла.

Источник

Деление чисел с фиксированной запятой в прямом и дополнительном кодах

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

В наиболее распространенных в настоящее время ЭВМ с системой команд X86 или IA-32 деление производится над числами с фиксированной точкой со знаком или без знака форматом байт или слово. При этом результат получается в виде целой части и остатка, причем каждая часть результата занимает фиксированное число байт.

Очевидно, что такой подход не может быть использован при делении чисел с фиксированной запятой, так как он предполагает, что, в общем случае, частное имеет целую часть, большую нуля, а это противоречит определению формата числа с фиксированной запятой. Для чисел, заданных в таком формате, будем исходить из следующих общих условий, не связанных со структурой конкретной ЭВМ:

Эти положения позволяют адаптировать предлагаемые алгоритмы деления к ЭВМ с произвольной архитектурой, в том числе, длине слова.

Деление чисел, заданных в прямом коде

Рассмотрим варианты деления чисел для случая, когда делимое и делитель представлены в прямом коде. При любом алгоритме деления в прямом коде чисел с фиксированной запятой результат, в общем случае, получается

При любом алгоритме деления в прямом коде чисел с фиксированной запятой результат, формируется поразрядно и так же, как и операнды, в прямом коде. Из этого следует, что в общем случае он формируется «с недостатком», так как какая-то дальнейшая цифра после прекращения выполнения операции может оказаться равной единице, тем самым увеличивая полученный результат. Это свойство может быть использовано для текущей проверки получаемых в ходе вычислений значений.

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

На первом этапе проводится определение знака частного:

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

Затем сравниваем абсолютные величины делимого и делителя.

Если α0 ≥ 0, то |X| ≥ |Y|. Следовательно, для чисел с фиксированной запятой Z = ∞, и дальнейшее деление не имеет смысла.

Источник

Деление чисел с фиксированной запятой в прямом и дополнительном кодах

Деление чисел, заданных в дополнительном коде

Для чисел с фиксированной запятой, заданных в дополнительном коде, алгоритмы деления во многом совпадают с алгоритмами деления для чисел, заданных в прямом коде. Назовем лишь имеющиеся отличия:

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

Как отмечалось выше, при любом алгоритме деления получение очередного остатка связано со сложение двух чисел разных знаков. Так как при делении чисел, заданных в дополнительном коде, знак результата получается автоматически в процессе деления, то основные формулы (9.1) и (9.2) несколько изменяются по сравнению с делением чисел, заданных в прямом коде:

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

Если Зн α0 = Зн Xдк, то |X| ≥ |Y|. Следовательно, для чисел с фиксированной запятой Z = ∞, и дальнейшее деление не имеет смысла.

Если Зн α0 ≠ Зн Xдк, то очередные остатки при делении получаем по следующей рекуррентной формуле

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.( 9.5)

Очередные разряды мантиссы результата, начиная с z0, вычисляются по формуле

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.( 9.6)
Пример 9.5

Выполнить деление двух чисел с фиксированной запятой, заданных в дополнительном коде, по алгоритму деления со сдвигом и автоматическим восстановлением остатка: Xдк = 1.0111; Yдк = 1.0110.

Решение

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

Результат

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

Пример 9.6

Выполнить деление двух чисел с фиксированной запятой, заданных в дополнительном коде, по алгоритму деления со сдвигом и автоматическим восстановлением остатка: Xдк = 1.0111; Yдк = 0.0110.

Решение

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

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

Данный алгоритм деления сочетает в себе черты алгоритма деления со сдвигом и автоматическим восстановлением остатка для чисел, заданных в дополнительном коде, и алгоритма деления со сдвигом делителя для чисел, заданных в прямом коде.

Первый шаг проводится по формуле

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

На этом шаге, определяется, превышает ли модуль делимого модуль делителя и если нет, то определяется знак частного z0, на основании следующего выражения:

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.( 9.10)

Очередной остаток определяется следующим образом:

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.( 9.11)

По соотношению знака очередного остатка и знака [Y]дк определяется очередная цифра частного согласно (9.10).

При построении арифметического устройства, использующего данный алгоритм деления, следует иметь в виду, что если мы не ориентируемся на укороченную разрядную сетку и связанные с этим механизмы коррекции результата после каждого шага вычислений, то из основных регистров необходимо иметь три 2n-разрядных регистров (для хранения делимого, делителя и остатков). Причем в число этих разрядов входит и знаковый разряд. Регистры делимого и делителя при первоначальной загрузке дополняются справа нулями. Кроме функции параллельной загрузки, регистр делителя должен иметь функцию сдвига вправо на один разряд.

Пример 9.7

Выполнить деление двух чисел с фиксированной запятой, заданных в дополнительном коде, по алгоритму деления со сдвигом и автоматическим восстановлением остатка: Xдк = 1.1110; Yдк = 0.0011.

Решение

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

Результат

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

Пример 9.8

Выполнить деление двух чисел с фиксированной запятой, заданных в дополнительном коде, по алгоритму деления со сдвигом и автоматическим восстановлением остатка: Xдк = 1.1100; Yдк = 1.1000.

Решение

деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. картинка деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде фото. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде видео. деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде смотреть картинку онлайн. смотреть картинку деление чисел с фиксированной запятой методом без восстановления остатка в прямом коде.

На некотором шаге деления получили остаток, равный нулю. Стоит ли продолжать деление? При использовании алгоритмов деления чисел, заданных в прямом коде, деление в этом случае прекращалось, и остальные цифры результата записывались равными нулю. Но в этом случае мы получим результат

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *