Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Етапи множення



  1. Визначення знаку добутку додаванням по модулю два знакових розрядів множників.
  2. Визначення порядку добутку додаванням порядків множників.
  3. Множення мантис множників за правилом множення чисел з фіксованою комою.
  4. Нормалізація і округлення результату.
    Зауваження: так як множники нормалізовані то денормалізація мантиси можлива лише на один розряд праворуч.
  5. Присвоєння результату знака.

1.8 Множення у додатковому коді (СРС)

Щоб виключити ланцюги циклічних переносів найчастіше використовують додатковий код. При множенні чисел у додатковому коді необхідно робити корекцію на основу СЧ.

При множенні чисел у додатковому коді можливі 4 випадки:

1) А > 0, В > 0 - як у прямому коді

2) А > 0, В <0 [В]д=1-В

[А]д * [В]д= А*(1-В) = А- АВ

э=1- ~B~

3) А < 0, В > 0 [А]д=1-А

[А]д * [В]д= (1-А) * В = В- АВ

э=1- ~A~

4) А < 0, В < 0

[А]д*[В]д==(1-А)*(1-В)=1-В-А+АВ

з = В+А- корекція

У додатковому коді необхідна корекція як знакової так і числової частини. Існує 2 способи корекції:

1) при формуванні "+";

2) після формування " - ";

Корекція при від'ємному множнику А > 0, В <0. У цьому випадку здійснюється множення множимого А на знакову одиницю множника В.

Розглянемо А як від'ємне і тому необхідно виконувати віднімання множимого, або додавання з протилежним знаком.

При даній корекції формується вірно цифрова та знакова частина.

Приклад: А = 0,1011 В = -0,1101

[В]д=1.0011

[-А]д= 1.0101

0,1011

1.0011

1,0101

1,01110001

Корекція при від'ємному множимому А < 0, В > 0 залежить від схем множення, бо необхідно виконувати зсув за правилом додаткового модифікованого коду.

Приклад: А = -0,1011 В = 0,1101

[А]мд= 11.0101

[В]мд= 00.1101

11,0101

00.1101

11,0101

11,10101

11,110101

11,0101

11,001001

11,1001001

11.0101

10,1110001

11,01110001

Корекція при А < 0, В < 0

Приклад: А = -0,1011 В = -0,1101

[А]мд=11.0101

[B]мд=11.0011 [-А]. 1011

11,0101

11.0011

00,1011

00,00000

1111110101

00,10001111

1.9 Прискорення операції множення.

Методи прискорення операції множення.

Швидкість операції множення впливає на швидкодію машини, тому існують методи прискорення операції множення. Вони бувають логічними та аппаратними:

Логічні: при застосуванні цих методів основна структура арифметичних ланцюгів не змінюється, ускладнюється лише схема управління.

1) пропуск тактів додавання, тобто не виконується додавання, якщо наступна цифра множника 0. Швидкість множення збільшується приблизно в два рази.

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

3) одночасне множення на два розряди множника. Суть методу в тому, що число розбивається на групи таким чином, що у кожній групі лише одна значима цифра.

4) множення у кратних СЧ. Використовується СЧ з кратними основами, як правило меньшу основу приводять до більшої.

5) запам'ятовування проміжних переносів;

Аппаратні: потребують для свого застосування додаткового обладнання. Бувають: матричні, табличні, конвеєрні. Матричний використовують при наявності додаткових сумматорів, які можуть додавати кілька часткових добутків.

1.10 Операції ділення.

При діленні чисел знакова та цифрова частини розглядаються як правило окремо. Існує два алгоритми ділення:

1. Алгоритм з поновленням залишку;

2. Алгоритм без поновлення залишку;

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

При діленні можна зсовувати дільник, а можна зсовувати ділене, якщо зсовуємо дільник ми зсовуємо ліворуч, а ділене праворуч.

Ділення якщо А>В де А- ділене, а В- дільник знак частки визначається додаванням по модулю 2 діленого та дільника.

Цифрова частина визначається за алгоритмом ділення з поновленим залишком:

Після кожного віднімання перевіряють знак залишку, якщо залишок додатній то в молодшому розряді частки записують 1, якщо від’ємний то 0, і поновлюють залишок додаванням до нього дільника, а потім виконувати наступне віднімання. Перед кожним відніманням необхідно виконувати зсув діленого на 1 розряд праворуч. Після обробки всіх розрядів діленого останній результат віднімання є залишком від ділення.

Якщо число ділиться націло то залишок = 0, інакше утворюються цифри після коми­ – продовження ділення.

Приклад:

0,111111010 10110

1,01001

10,010001

1,01001

1,11010

0,10111

0,100010

1,01001

10,010111

1,01001

10,000000

Алгоритм ділення без поновлення залишку

Якщо залишок додатній то перша цифра частки 1, якщо від’ємний то 0. Виконується зсув і додається дільник з протилежним знаком.


Приклад:

0,111111010 10110

1,01001

10,010001

1,01001

1,110100

0,10111

10,010111

1,01001

0,100000

Ділення чисел коли .

При діленні правильних дробів можливе переповнення розрядної сітки коли ділене по модулю більше ніж дільник по модулю.

Ознакою переповнення є поява 1 у псевдо знаковому розряді частки.

При діленні обчислюється окремо знакова та цифрова частина. Цифрова частина визначається діленням цифрових частин вихідних чисел, як і у попередньому випадку 2 алгоритми ділення:

Алгоритм з поновленням залишку:

1. Дільник віднімається від діленого і визначається знак залишку, якщо залишок >0, чи додатній, то ділене по модулю більше ніж дільник по модулю і псевдо знаковий розряд частки =1, у цьому випадку формується ознака переповнення розрядної сітки і операція припиняється.

Якщо залишок від’ємний то псевдо знаковий розряд =1, і проводиться додавання до залишку дільника для поповнення.

2. Проводиться зсув поновленого дільника на 1 розряд ліворуч і відбувається повторне віднімання дільника.

Знак остачі визначає першу цифру частки, якщо залишок додатній то вона 1, а від’ємний 0.

3. Якщо залишок додатній то він зсовується на один розряд ліворуч і від нього віднімається дільник для визначення наступної цифри частки.

Якщо залишок від’ємний до нього додається дільник для поповнення попереднього залишку, а потім зсовується на один розряд ліворуч і від нього віднімається дільник для визначення наступної цифри частки.

Даний цикл повторюється до отримання необхідної точності частки.

Зауваження:

Цифри частки отримуються як інвертні значення знакових розрядів поточних залишків.


Приклад 2: 00,010 Знос: 0,01 11,001 11,011 00,111 00,010 00,100 11,001 11,101 00,111 00,100 01,000 11,001 00,001

 

Приклад 1:

00,101 Знос: 0,1101

11,010

11,111

00,110

00,101

01,010

11,010

00,100

01,000

11,010

00,010

00,100

11,010

11,110

00,110

00,100

01,000

11,010

00,010

Ділення з поновленням залишку

Це аритичний процес – тобто коли треба робити поновлення залишку, а коли не треба. Саме тому найчастіше використовується алгоритм ділення без відновлення залишку. У якому цифра частки визначається за алгоритмом:

Поточний залишок зсовується на один розряд ліворуч і до нього алгебраїчно додається дільник з протилежним знаком поточного залишку. Знак наступного отриманого залишку визначає наступну цифру частки, якщо залишок від’ємний то цифра 0, якщо додатній то 1.

Приклад:

А= 0,101

В= 0,110 Знос: 0,1101

00,101

11,010

11,110 11,100 00,110 00,010  

 

11,111

11,110

00,110

00,100

01,000

11,010

00,010

00,100

11,010

Ділення чисел у формі з рухомою комою.

Число А у формі з рухомою комою представляється у вигляді:

1. 1. На першому етапі ділення чисел з рухомою комою визначається знак частки.

2. 2. Необхідно визначити порядок частки шляхом віднімання порядку діленого від порядку дільника.

3. 3. Ділення мантис чисел за правилом ділення чисел у формі з фіксованою комою.

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

Приклад 1:

 
 
Приклад 2: 00,110 Переповнення розрядної сітки 11,100 100,010 00,011 11,100 Знос: 11,111 Відповідь: 00000110 11.110 00,100 00,010 00,100 11,100 00,000 00,000 11,100 11,100 11,000 00,110 11,110

 

00,111010

11,111101

11,111010

00,111101

00,110111

01,101110

11,000011

00,110001

01,100010

11,000011

00,100101

01,001010

11,000011

00,001101

00,011010

11,000011

11,011101

10,111011

00,111100

11,110111

11,101110

00,111101

00,101011

Знос:

Відповідь: 00000111101*2


2. Логічні операції ЕОМ (СРС)

Усі пристрої ЕОМ складаються з елементів логічних схем. Робота цих схем заснована на законах і правилах алгебри логіки, що оперує двома поняттями: істинності і хибності висловлення. Відповідно до такої двійкової природи висловлень умовилися називати їх логічними двійковими змінними і позначати 1 у випадку істинності і 0 у випадку хибності. Прикладами логічних змінних є висловлення: А = “Земля плоска”, У = “Автомобіль має двигун”.

На підставі цих висловлень можна записати А = 0; У = 1, тому що висловлення А помилкове, а висловлення В істинно.

Висловлення можуть бути простими і складними: прості містять одне закінчене твердження, складні утворяться з двох чи більшого числа простих висловлень, зв'язаних між собою деякими логічними зв'язками. Формалізація і перетворення зв'язків між логічними змінними здійснюється відповідно до правил алгебри логіки, називаною алгеброю Буля (англійський математик).

Дві логічні змінні А и В, що приймають значення 0 чи 1, можуть утворювати логічні функції. З 16 можливих функцій двох змінних найбільший практичний інтерес представляють функції заперечення, логічного множення і логічного додавання.

Логічне заперечення НЕ змінної А є логічна функція Х, що істинна тільки тоді, коли неправда А, і навпаки.

В алгебрі логіки будь-які функції зручно зображувати у виді таблиці відповідності всіх можливих комбінацій вхідних логічних змінних і вихідний логічний функції, називаною таблицею істинності. Для функції логічного заперечення НЕ ця таблиця має вид

А    
Х    

де А – вхідна змінна, Х – вихідна функція.

Функцію НЕ в символах алгебри логіки записують у такий спосіб:

Х = .

Графічно ця функція позначається кружком на чи вході виході логічного символу.

Приймемо положення перемикача за вхідну змінну і позначимо замкнутий стан ключа логічною одиницею (Х = 0), а розімкнуте – логічним нулем (Х = 0).

Логічне множення И двох змінних А и В є логічна функція Х, що вірна тільки тоді, коли одночасно вірні вхідні змінні. Для функції логічного множення таблиця істинності має вид

А        
У        
Х        

В алгебрі логіки логічне множення И іноді називають конъюнкцией і записують у виді Х = А * У чи Х = А В. графічно функція И позначається у вигляді прямокутника, усередині якого ставиться символ &.

Логічна АБО сума змінних А и В є логічна функція Х, що істинна, коли хоча б одна з вхідних функцій щира. Для логічної суми таблиця істинності має вид

А        
В        
Х        

Логічна сума в символах алгебри логіки записується так:

Широке поширення одержали в реалізації сучасних логічних схем функції АБО-НІ, І-НІ, що виключають АБО. Таблиця істинності функцій відповідно має вид

А           А        
У           В        
Х = АБО-НІ           Х = І-НІ        
А        
В        
Х = А + В        

У табл. 1.4 приведений повний перелік функцій двох аргументів. Функції, утворені логічними змінними, можна перетворювати відповідно до чи правил законами алгебри логіки. При цьому прагнуть мінімізувати логічне вираження, тобто привести його до виду, зручному для практичної реалізації на логічних елементах.

Функції     f0 (X, Y) f1 (X, Y) f2 (X, Y) f3 (X, Y) f4 (X,Y) f5 (X, Y) f6 (X, Y) f7 (X, Y) f8 (X, Y) f9 (X, Y) f10 (X, Y) f11 (X, Y) f12 (X, Y) f13 (X, Y) f14 (X, Y) f15 (X, Y) Аргументи   Х 0 0 1 1 Y 0 1 0 1   0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 Позначення функції   X Y X Y X Y X Y X Y X Y X Y X~Y Y X X Y X\Y Назва функції     Константа 0 Конъюкция (логічне І) Заборона по Y (заперечення імплікації) Змінна Х Заборона по Х (заперечення імплікації) Змінна Y Сума по модулі 2 Диз'юнкція (логічне АБО) Стрілка Пірса (заперечення диз'юнкції) Еквівалентність Заперечення Y (функція НЕ) Імплікація від Y k X Заперечення Х (функція НЕ) Імплікація від Х к Y Штрих Шеффера (заперечення конъюкції) Константа 1

Виключна диз'юнкція (також операція XOR, додавання за модулем два) — двомісна логічна операція, що приймає значення «істина» тоді і тільки тоді коли значення «істина» має рівно один з її операндів. Виключна диз'юнкція є запереченням логічної еквівалентності.

Для запису операції використовуються позначення:

^

Виключну диз'юнкцію деколи задають через інші логічні операції, наприклад:

Таблиця істинності виглядає таким чином:

хибність хибність хибність
хибність істина істина
істина хибність істина
істина істина хибність

Результат застосування виключної диз'юнкції такий самий як і від додавання за модулем 2. Тому і саму операцію часто називають додаванням за модулем 2.

Виключна диз'юнкція у програмуванні

В мовах C/C++ (а також Java, C#, Ruby, PHP, JavaScript) дана операція позначається символом «^», в мовах Паскаль, Delphi, Ада - зарезервованим словом XOR. Додаванн виконується побітово для двох операндів. Наприклад,





Дата публикования: 2014-12-11; Прочитано: 501 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.024 с)...