Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Машинні алгоритми операції ділення

Машинні алгоритми операції множення

 

 

101001110

10100111

 

З цього прикладу видно, що для реалізації операції множення можуть застосовуватися схеми множення із молодших розрядів або із старших розрядів, а також із зсувом часткових сум або множника. Комбінація цих параметрів множення дають 4 алгоритми множення.

 

1. Множення з молодших розрядів другого множника та зсувом ліворуч першого множника.

 

 

Початковий стан

Перший крок

Другий крок

Третій крок

00 00 0
Четвертий крок

П’ятий крок

Шостий крок

Сьомий крок

Восьмий крок

 

 

  1. Алгоритм множення із старших розрядів другого множника та зсувом першого множника праворуч при кожному кроці на один розряд.

 

 

Початковий стан

Перший крок

1

Другий крок

Третій крок

Четвертий крок

П’ятий крок

Шостий крок

Сьомий крок

Восьмий крок

 

 

  1. Множення з молодших розрядів із зсувом часткових сум праворуч.

 

 

Початковий стан

Перший крок

Другий крок

Третій крок

Четвертий крок

П’ятий крок

Шостий крок

Сьомий крок

Восьмий крок

 

 

  1. Множення із старших розрядів другого множника із зсувом часткової суми ліворуч.

 

Початковий стан

     

Перший крок

     

Другий крок

     

Третій крок

     

Четвертий крок

     

П’ятий крок

     

Шостий крок

     

Сьомий крок

     

Восьмий крок

Як бачимо, всі перелічені алгоритми мають однаковий результат.

 

Прискорені алгоритми множення. Алгоритм Бута

 

Машинні алгоритми операції ділення

Машинне ділення організовано за тією ж схемою, як й звичайне десяткове ділення. Тобто, починаючи зі старших розрядів діленого, віднімається дільник і формує чепнрві цифри результату, починаючи зі старшої. Якщо результат віднімання додатній, то чергова цифра результату ділення, починаючи із старшої цифри, дорівнює 1, інакше 0 і повторювати ці дії, зсуваючи праворуч на один розряд дільник, доки кількість розрядів діленого операнду, не буде менше за кількість цифр дільника.. Якщо при черговому відніманні дільника результат буде від’ємний, то треба відновити від’ємний залишок. Від’ємний залишок можна і не відновлювати, якщо на наступному кроці віднімання замінити на додавання. Припустимо, що і-му кроці маємо від’ємний результат. Тобто, ми віднімали 2і*D, де D – це дільник. При відновленні від’ємного залишку виконується +2і*D та чергове віднімання -2(і-1)*D, тобто фактично виконується додавання +2(і-1)*D. Звідси існує два алгоритми множення: з відновленням від’ємного залишку та без його відновлення.

При діленні із відновленням від’ємного залишку алгоритм складається із таких кроків: 1) до старшої частини числа, що ділиться, додається додатковий код дільника, якщо результат додатній, чергова цифра результату ділення буде 1. 2) Від’ємний залишок відновлюється за допомогою прямого коду дільника. Вказані дії повторюються циклічно. Кількість кроків в циклі обмежується останньою двійковою цифрою діленого.

В разі ділення без відновлення від’ємного залишку маємо два коди дільника – прямий та додатковий. Цей алгоритм заснований на тому, що замість відновлення від’ємного залишку виконується додавання прямого коду дільника до від’ємного залишку.

Алгоритм машинного ділення у відповідних машинних командах реалізований як мікропрограма (низка мікрокоманд).

Приклад машинного ділення за алгоритмом з відновлюванням від’ємного залишку. Для прикладу візьмемо результат попереднього множення та один з множників. В результаті ділення отримаємо другий множник.

-11001010

1011100111000110 від’ємний залишок

+11001010 відновлення

-11001010

0001111011000110 чергова цифра результату - 1

-11001010

1110110001000110 від’ємний залишок

+11001010 відновлення

0001111011000110 чергова цифра результату - 0

-11001010

0000010110000110 чергова цифра результату - 1

-11001010

+11001010 відновлення

0000010110000110 чергова цифра результату – 0

-11001010

+11001010 відновлення

0000010110000110 чергова цифра результату – 0

-11001010

0000001001011110 чергова цифра результату - 1

-11001010

0000000011001010 чергова цифра результату - 1

-11001010 чергова цифра результату - 1

Як бачимо, в результаті ділення тримали значення другого множника з попереднього прикладу.

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.