русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Схемы деленяе целых чисел без знака (в прямом коде)


Дата добавления: 2014-11-27; просмотров: 3592; Нарушение авторских прав


При делении чисел в прямом коде производится деление чисел без знаков и отдельно производится вычисление знаков частного и остатка. При этом остатку присваивается знак делимого. Знак частного определяется по результатам сравнения знаков делимого и делителя. Частному присваивается положительный знак, если знаки делимого и делителя совпадают.

Пример. Деление целых чисел без знака с восстановлением отрицательных остатков:

А = 3810 = 100110(2) делимое (число без знака),

В = 510 = 101(2) делитель (число без знака),

С – частное от деления (число без знака),

В модифицированном дополнительном коде (- В)=11 1011(2)

№ цикла Делимое/ частичный остаток Делитель Частное Комментарии
0,0100110 +1,1011 . 1,1111 +0,0101 0,0100110   Исходное состояние Пробное вычитание (дополнительный код) Результат отрицательный (переполнения нет) Восстановление остатка. Остаток восстановлен
0,100110 +1,1011 0,010010 Сдвиг делимого, Первое вычитание (дополнительный код) Результат положительный. Цифра частного 1
0,1001 +1,1011 . 0,0100 Сдвиг делимого Второе вычитание (дополнительный код) Результат положительный. Цифра частного 1.
0,1000 +1,1011 0,0011 Сдвиг делимого Третье вычитание) Результат положительный. Цифра частного 1

 

Результат деления 100110 (3810) на 101(510):

 

частное – 111 (710), остаток – 011(310) (числа без знаков).

Результат :

частное С = 111(2), =7(10)(число без знака).

остаток – 0011(2) =3(10) (число без знака).

 

Восстановление отрицательных остатков делает алгоритм деления нерегулярным. Для избавления от нерегулярности алгоритма деления используют схемы деления без восстановления отрицательных остатков.



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

Если при очередном вычитании получился отрицательный частичный остаток (А–В) = а<0, то его восстановление заключается в операции а + В.

Для определения следующей цифры частного восстановленный частичный остаток сдвигается влево на один разряд, что равносильно умножению его на два :

2 (а + В) = 2а +2В.

После этого Далее из этой величины, для определения следующей цифры частного, вычитается делитель:

2а +2В – В = 2а + В.

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

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

Пример: Деление целых чисел без восстановления отрицательных остатков.

А = 55(10) = 110111(2) делимое (число без знака),

В = 7(10) = 111(2) делитель (число без знака),

С – частное от деления (число без знака).

 

№ цикла Делимое/ частичный остаток Делитель Частное Комментарии
00.110000 +11.001 . 11.111000 00.111     Исходное состояние Пробное вычитание (дополнительный код) Результат отрицательный. (Переполнения нет)
11.11000 +00.111 . 00.10100 00.111   Сдвиг отрицательного делимого влево и вместо вычитания – сложение с делителем. Результат положительный, цифра частного = 1.
01.0100 +11.001 . 00.0110 00.111   Сдвиг положительного делимого влево и вычитание (дополнительный код) делителя. Результат положительный, цифра частного = 1.
00.0110 +11.001 11.110 00.111 Сдвиг положительного делимого влево и вычитание (дополнительный код) делителя. Результат отрицательный, цифра частного = 0.
  11.110 00.111 00.110 00.111   Восстановление отрицательного остатка.

 

Результат деления 110111 на 101:

частное – 110, остаток – 0110. (числа без знаков).

Результат :

Частное С = 110(2) = 6(10), (число без знака).

остаток – 0110(2) =6(2), (число без знака).

Блок схема алгоритма деления целых чисел без восстановления отрицательных остатков представлена на рис. 5.8.

Рис.5.8. Блок схема алгоритма деления целых чисел без знаков (в прямом коде) без восстановления отрицательных остатков.



<== предыдущая лекция | следующая лекция ==>
Схемы деления целых чисел без знака | Схемы деления целых чисел со знаком (в дополнительном или обратном кодах)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.123 сек.