Арифметико-логічні основи ЕОМ
Загальні відомості про системи числення. Поняття основи. Машинні коди чисел. Алгоритми виконання операцій додавання і віднімання в арифметико-логічному пристрої ЕОМ, множення і ділення двійкових чисел в АЛП. Логічні основи ЕОМ. Досконалі нормальні форми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | учебное пособие |
Язык | украинский |
Дата добавления | 09.02.2012 |
Размер файла | 355,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
62
Размещено на http://www.allbest.ru/
Міністерство освіти і науки України
Державний вищий навчальний заклад
„Чернівецький індустріальний коледж”
НАВЧАЛЬНИЙ ПОСІБНИК
Арифметико-логічні основи ЕОМ
Чернівці
2009
Розділ 1. Арифметичні основи ЕОМ
Тема 1.1 Загальні відомості про системи числення. Поняття основи
Вступ
Актуальні завдання розвитку обчислювальної техніки, пов'язані з розвитком всіх галузей промисловості, вимагають застосування цифрової обробки інформації та використання сучасних інформаційних технологій. Обчислювальні пристрої - комп'ютери та калькулятори, системи контролю та сигналізації, системи керування промислових механізмів та установок створені за єдиними принципами.
Мета предмету: вивчення принципів, за якими створюються обчислювальні пристрої.
Комп'ютер безпосередньо не сприймає десяткові числа. Стан електронних елементів будь-яких обчислювальних пристроїв (комп'ютерів) залежить від того, проходить чи ні в даний момент через них електричний струм. Ці два стани можна позначити як 0 і 1. тобто вся інформація, яку обробляє комп'ютер, повинна бути закодована тільки цифрами 0 та 1.
Десяткові числа спочатку переводяться в їхній аналог, представлений за допомогою цифр 0 і 1, і лише після цього обробляється. А потім для представлення результату в зручній для користувача формі, відбувається зворотній процес.
Основні відомості про системи числення.
Система числення - це сукупність правил для позначення (запису) чисел за допомогою цифр, знаків. Для запису чисел в конкретній системі числення використовується деякий алфавіт, що складається цифр або інших символів.
Розрізняють два види систем числення: позиційні і непозиційні
Кількість символів, за допомогою яких можна записати будь-яке число в даній системі числення, називається основою системи числення (S). В різних системах числення зустрічається однакові записи чисел, але значення їхнє в різних системах різне. Для того щоб визначити, в якій системі числення писане дане число будемо вказувати індексом систему числення: , , , .
Оскільки першою цифрою у будь-якій системі числення є нуль, то остання можлива цифра в алфавіті системи завжди на одиницю менша за основу цієї системи: Наприклад:
.
Існує закономірність: ; ;
Позиційні системи числення
Позиційні системи числення - це системи, в яких „вага” кожної цифри в числі залежить від її місцезнаходження в записі цього числа. Розглянемо десяткову систему числення.
Візьмемо число 555. Найправіша цифра 5 означає 5 одиниць. Найлівіша - 500 одиниць. Тобто „вага” кожної із цих п'ятірок зовсім різна. Позиції цифр в запису числа називаються розрядами. Тут „вага” кожного розряду в 10 разів більша від „ваги” попереднього. Наприклад
Значить кожне число в десятковій системі числення можна представити в вигляді суми різних цілих степенів числа 10 з відповідними коефіцієнтами аі (0,1,2…9), взятими з алфавіту даної системи.
Наприклад:
Тобто записують тільки коефіцієнти при степенях.
Для представлення чисел в системах числення з основою S>10 недостатньо цифр арабських (0,1,…,9). Тому їх доповнюють іншими символами, знаками. Так наприклад для шістнадцяткової системи вводять:
10 - А, 11 - В, 12 - С, 13 - D, 14 - E, 15 - F.
Наприклад
Непозиційні системи числення.
Непозиційні системи числення - це системи, в яких „вага” (кількісний еквівалент) кожної цифри в числі не залежить від її місцезнаходження в запису даного числа.
Наприклад
Запис чисел паличками, хрестиками чи іншими символами, кожен з яких є еквівалентом одиниці, може бути прикладом непозиційної системи числення. Така система числення є найдревнішою.
У римській системі числення для запису різних цілих чисел використовують символи I, V, X, L, C, D, M і т.д., які позначають відповідно один, п'ять, десять, п'ятдесят, сто, п'ятсот, тисяча і т.д. Наприклад, запис у римській системі числення MCMLXXXV означає число 1985. Ця система також є непозиційною, оскільки в ній значення цифр не залежить від їх позиції в ряді інших цифр.
Загальним недоліком непозиційних систем є складність представлення в них достатньо великих чисел, оскільки при цьому отримується надзвичайно громіздкий запис чисел або потрібен великий алфавіт цифр, що використовуються. В зв'язку з цим в ЕОМ застосовують лише позиційні системи числення, у яких кількісний еквівалент кожної цифри алфавіту залежить не тільки від вигляду цієї цифри, але і від її місцерозміщення у запису чисел.
Таблиця 1. Представлення чисел у різних системах числення
Система числення |
|||||
Десяткова |
Двійкова |
Вісімкова |
Шістнад-цяткова |
Двійково-десяткова |
|
0 |
0 |
0 |
0 |
0000 |
|
1 |
1 |
1 |
1 |
0001 |
|
2 |
10 |
2 |
2 |
0010 |
|
3 |
11 |
3 |
3 |
0011 |
|
4 |
100 |
4 |
4 |
0100 |
|
5 |
101 |
5 |
5 |
0101 |
|
6 |
110 |
6 |
6 |
0110 |
|
7 |
111 |
7 |
7 |
0111 |
|
8 |
1000 |
10 |
8 |
1000 |
|
9 |
1001 |
11 |
9 |
1001 |
|
10 |
1010 |
12 |
A |
00010000 |
|
11 |
1011 |
13 |
B |
00010001 |
|
12 |
1100 |
14 |
C |
00010010 |
|
13 |
1101 |
15 |
D |
00010011 |
|
14 |
1110 |
16 |
E |
00010100 |
|
15 |
1111 |
17 |
F |
00010101 |
|
16 |
10000 |
20 |
10 |
00010110 |
|
17 |
10001 |
21 |
11 |
00010111 |
|
18 |
10010 |
22 |
12 |
00011000 |
|
19 |
10011 |
23 |
13 |
00011001 |
|
20 |
10100 |
24 |
14 |
00100000 |
Тема 1.2 Позиційні системи числення, які застосовуються в ЕОМ
Двійкова система числення
Основа (S) - 2 тобто 1 і 0.
Будь-яке дійсне число в двійковій системі представляють у вигляді суми цілих степенів її основи S = 2 помножених на відповідні коефіцієнти - 0 або 1, тобто
За цією формулою можна представити в двійковій системі,
наприклад такі числа:
Таблиця 2. Таблиця степенів числа 2.
2-5 |
2-4 |
2-3 |
2-2 |
2-1 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
|
0,03125 |
0,0625 |
0,125 |
0,25 |
0,5 |
1 |
2 |
4 |
8 |
16 |
32 |
64 |
128 |
256 |
|
29 |
210 |
211 |
212 |
213 |
214 |
|||||||||
512 |
1024 |
2048 |
4096 |
8192 |
16384 |
Переваги двійкової системи:
Простота конструкції арифметичних і запам'ятовуючих пристроїв.
Можливість застосувати апарат математичної логіки при проектуванні функціональних схем та при розв'язування логічних задач.
Недоліки: 1. Громіздкість записів (двійковий запис числа як мінімум в 3,32 рази довший за десятковий).
2. Попередньо треба переводити всі вихідні дані з десяткової системи в двійкову, а потім навпаки.
Реалізація існуючих систем числення з основою більшою ніж 2 зазвичай досягається представленням цифр цієї системи групою двійкових цифр. Найбільшими можливостями в цьому напрямку володіють системи числення з основою, яка являє собою цілу степінь числа 2. З них використовують вісімкову і шістнадцяткову системи числення.
Вісімкова система числення
Її використовують як допоміжну при підготовці задачі до розв'язування (в процесі програмування), при перевірці роботи машини і налаштуванні програми. В цій системі використовується вісім цифр від 0 до 7, а число представляється сумою цілих степенів основи S = 8 помножених на відповідні коефіцієнти, тобто , де i = 0 - 7 .
Тоді десяткове число 215 можна представити:
Вісімкова система числення зручна тим, що від неї легко можна перейти до двійкової системи.
Таблиця 3. Таблиця степенів числа 8.
80 |
81 |
82 |
83 |
84 |
85 |
|
1 |
8 |
64 |
512 |
4096 |
32768 |
Шістнадцяткова система числення
Так само як і вісімкова ця система має основу, що дорівнює цілому степеню числа 2. Ця система також використовується як проміжна для внутрішнього запису чисел і команд програми.
В цій системі числі, як і в інших позиційних системах числення, теж можна представити сумою цілих степенів основи S = 16 помножених на відповідні коефіцієнти з алфавіту, тобто
,
де .
Таблиця 4. Таблиця степенів числа 16.
160 |
161 |
162 |
163 |
164 |
165 |
|
1 |
16 |
256 |
4096 |
65536 |
1048576 |
Двійково-десяткова система числення
Числа в ній записують наступним чином:
За основу беруть десятковий запис числа, а потім кожну його цифру (від 0 до 9) записують в вигляді чотирьохрозрядного двійкового числа, що називається тетрадою.
Наприклад: 746,95
Таким чином 746,95 відповідає двійково-десятковому коду 011101000110,10010101
Перевід навпаки з двійково-десяткової в десяткову систему теж простий. Треба число вліво і вправо від коми розбити на четвірки цифр - тетради і замінити кожну тетраду відповідною десятковою цифрою.
Тема 1.3 Алгоритми перетворення цілих чисел, правильних дробів та змішаних десяткових чисел в системи з іншою основою
Табличний спосіб перетворення десяткових чисел в систему з іншою основою.
Найдоступнішим і таким, що не потребує складних розрахунків, способом переводу чисел з десяткової системи числення в систему з новою основою є так званий табличний спосіб. Його суть полягає в тому, що вихідне десяткове число представляють у вигляді суми різних степенів нової основи. Ці степені підбирають з відповідної таблиці (звідси й назва способу). Послідовність розміщення цих степенів починається з тієї, яка дає число, що не перевищує (менше чи рівне) вихідне десяткове число. Потім для членів отриманого ряду степенів підбирають відповідні коефіцієнти таким чином, щоб їх сума дорівнювала вихідному десятковому числу.
Розглянемо цей спосіб на декількох прикладах. Нехай потрібно перевести десяткове число N10 = 377 у двійкову систему числення. Найбільший степінь нової основи S = 2, яка не перевищує число 377, дорівнює 8, тому що 28 = 256. Отже, послідовність розміщення степенів починається з числа 28 і закінчиться числом 20. З цих членів підбирають ті, котрі будуть сумуватися для отримання результату, рівного 377. Потім перед членами, які приймали участь в сумуванні, ставимо коефіцієнт 1, а перед тими, які не приймали участі - 0. Кінцевий запис двійкового числа буде складатися з цих коефіцієнтів:
128 027 126 125 124 123 022 021 120
37710 = - + + + -+ - + - + -+ - + - = 1011110012.
256 + 0 + 64 + 32 + 16 + 8 + 0 + 0 + 1 = 37710
Виконаємо тепер перевід цього ж чила 37710 у вісімкову систему числення. Найбільша степінь восьми, що не перевищує 377, дорівнює 2. Отже, послідовність степенів буде складатися з 82, 81, 80. Підбираючи до них коефіцієнти із алфавіту вісімкової системи числення (від 0 до 7), отримаємо:
582 781 180
37710 = - + - + - = 5718.
320 + 56 + 1 = 37710
Аналогічно виконаємо перевід числа 377 в шістнадцяткову систему:
1162 7161 9160
37710 = - + - + - = 17916.
256 + 112 + 9 = 37710.
Слід зазначити, що вісімкові і шістнадцяткові числа легко переводяться в двійкову систему числення, завдяки чому ці системи використовують в якості проміжного при переводі з десяткової системи числення в двійкову. Це пояснюється тим, що їх основи (S = 8, S = 16) відповідають цілим степеням числа два (23 = 8, 24 = 16).
Для переводу вісімкових чи шістнадцяткових чисел у двійкову систему числення достатньо кожну їхню цифру замінити відповідно трьох- чи чотирьохрозрядним двійковим числом. Переконаємось у цьому при переводі вісмікового числа 5718 і шістнадцяткового числа 17916 у двійкову систему числення.
5 7 1 1 7 9
- - - - - - .
101 111 001 0001 0111 1001
в обох випадках отримаємо одинаковий результат 5718 = 17916 = 1011110012, який співпадає з тим, що раніше був отриманий шляхом безпосереднього переводу в двійкову систему числення вихідного десяткового числа 37710.
Переведення цілих десяткових чисел в іншу систему числення способом ділення
Для переводу цілого числа з десяткової системи числення в іншу систему з основою S треба це число послідовно ділити на основу S нової системи доти поки не отримаємо ділене менше від S.
Число в новій системі запишеться в вигляді остач ділення, починаючи з останньої. Ця остання остача дає цифру старшого розряду в новій системі числення. Ділення виконують у вихідній системі числення.
Тобто
Тобто
Тобто
Переведення дробів з десяткової системи числення в іншу
Щоб перевести правильний дріб (0,…) із десяткової системи числення в іншу, потрібно цей дріб послідовно множити на основу тієї системи, в яку він переводиться. При цьому перемножуються тільки дробові частини. Дріб в новій системі запишеться у вигляді цілих частин отриманих добутків починаючи з першої
Тобто |
Тобто |
Тобто |
Тепер
При переводі змішаних десяткових чисел (наприклад 15,6875) необхідно, користуючись розглянутими правилами виконати окремо перевід цілої і дробової частин:
тому
Подібним чином виконаємо перевід цього ж дробу в вісімкову і шістнадцяткову системи числення:
0, 6875 х 8 5, 5000 х 8 4, 0000 |
0, 6875 16 11, 0000 |
У шістнадцятковій системі ціла частина добутку 11 запишеться символом В, тому отримаємо
0,687510 = 0,10112 = 0,548 = 0,В16.
Особливості двійково-десяткового кодування
При переводі десяткових чисел в двійкову в якості проміжної застосовують двійкову-десяткову систему числення. Числа в цій системі записують наступним чином. За основу беруть десятковий запис числа, а потім кожну його цифру (від 0 до 9) записують у вигляді чотирьохрозрядного двійкового числа, що називається тетрадою. Таким чином, двійково-десятковий запис числа відрізняється від його десяткового запису тим, що для зображення кожної цифри застосовують не один знак, а чотири знаки.
Щоб дане десяткове число записати в двійково-десятковій системі, необхідно кожну його цифру замінити відповідною двійковою тетрадою. Візьмем, наприклад, десяткове число 746,95 і запишемо його в двійково-десятковій системі. Перепишемо спочатку це число з великими інтервалами між цифрами, а потім під кожною цифрою поставимо відповідну їй двійкову тетраду:
7 4 6 9 5
- - - - -
0111 0100 0110 1001 0101
Таким чином, десяткове число 746,95 відповідає двійково-десятковому числу 011101000110,10010101.
Перевід чисел з десяткової системи у двійково-десяткову не пов'язаний з розрахунками. Тому можна наперед закодувати десяткові числа їх двійковими еквівалентами і переводити числа з десяткової систем в двійково-десяткову суто механічно.
Зворотній перевід числа з двійково-десяткової системи в десяткову також простий. Для цього двійково-десяткове число ліворуч і праворуч від коми необхідно розбити на четвірки цифр - тетради, а потім кожну тетраду замінити відповдною десятковою цифрою. Наприклад, маємо двійково-десяткове число 100101100101,01110001. Розіб'ємо його на тетради і, замінивши кожну тетраду десятковою цифрою, отримаємо
Перед вводом вихідних даних в машину десяткові числа спеціальними пристроями перетворюються в двійково-десяткові, які потім за спеціальною програмою переводяться самою машиною в двійкові. Після закінчення розрахунків машина автоматично переводить результат з двійкової в двійково-десяткову систему, після чого спеціальні пристрої видають кінцевий результат в десятковій системі. Слід зазначити, що існують машини, в яких обчислювальні операції здійснюються в двійково-десятковій системі.
Тема 1.4 Формати представлення даних і розміщення інформації в оперативній пам'яті ЕОМ
Двійкові числа в обчислювальних пристроях розміщуються у комірках пам'яті, причому для кожного розряду числа виділяється окрема комірка, що зберігає один біт інформації. Сукупність комірок, призна-чених для розміщення одного двійкового числа, називають розрядною сіткою. Довжина розрядної сітки (число комірок n у розрядній сітці) обмежена і залежить від конструктивних особливостей обчислювального пристрою. Більшість існуючих електронних обчислювальних пристроїв мають розрядні сітки, що містять 16, 32 або 64 комірок.
Розміщення розрядів числа у розрядній сітці може відбуватися різними способами. Спосіб розміщення визначається формою подання двійкових чисел у ЕОМ. Розрізняють дві форми подання двійкових чисел: із фіксованою комою і з «плавучою» комою. Іноді ці форми називають відповідно природною і напівлогарифмічною.
Припустимо, що в розрядній сітці необхідно розмістити двійкове число, що містить цілу і дробову частини. Якщо для розміщення цілої частини числа виділяється k комірок n-розрядної сітки, то (якщо не враховувати знак) для розміщення дробової частини залишиться n-k вільних комірок (рис. 1).
Форма подання двійкових чисел із фіксованою комою.
Така форма подання двійкових чисел називається формою з фіксованою комою. Дійсно, положення коми строго фіксовано стосовно розрядної сітки. Якщо кількість розрядів у дробовій частині числа перевищують n-k, то деякі молодші розряди виходять за межі розрядної сітки і не будуть сприйматися обчислювальним пристроєм. Отже, будь-яке двійкове число, менше ніж одиниця молодшого розряду розрядної сітки, сприймається як нуль і називається машинним нулем.
У результаті відкидання молодших розрядів дробової частини числа, розташованої за межами розрядної сітки, виникає похибка подання. Максимальне значення абсолютної похибки подання не перевищує одиниці молодшого розряду сітки.
В універсальних ЕОМ форма з фіксованою комою, у зв'язку з властивою їй низькою точністю, застосовується лише для подання цілих чисел. Основною є форма подання чисел з «плаваючою» комою. Її використання дозволяє суттєво розширити діапазон і зменшити відносну похибку.
У цій формі числа подаються у вигляді суми деякого степеня основи системи числення (який називається характеристикою числа) і цифрової частини, що має вигляд правильного дробу:
,
де p називають порядком числа, а правильний дріб a - його мантисою. Мантиса і порядок є знаковими числами. Тому для позначення знаків у розрядній сітці відводяться два додаткові розряди. Знак усього числа співпадає із знаком мантиси.
При запису двійкового числа у показовій формі, в розрядній сітці використовуються дві групи розрядів (без урахування знакових розрядів мантиси і порядку). Перша група (k розрядів) призначена для розміщення коду мантиси, друга (n-k розрядів) - для розміщення коду порядку (рис.2).
Форма подання двійкових чисел із „плаваючою” комою.
Отже, мантиса числа може мати необмежену кількість різних значень, менших за одиницю, при відповідних значеннях порядку (тобто кома може «плавати»). З усієї кількості подань числа у показовій формі те його подання, що не має в старшому розряді мантиси нуля, називають нормалізованим. Всі інші подання є ненормалізованими. У нормалізованій формі значення мантиси завжди більші або дорівнюють 1/2, але не перевищують одиниці.
У обчислювальних пристроях із «плаваючою» комою усі числа зберігаються у нормалізованому вигляді, при цьому не втрачаються молодші розряди мантиси і підвищується точність обчислень. Якщо після виконання будь-якої арифметичної операції результат виявляється ненормалізованим, то перед занесенням числа в пам'ять виконують його нормалізацію, тобто зсув мантиси ліворуч на відповідну кількість розрядів, і зменшення порядку числа на відповідну кількість одиниць.
Показова форма подання чисел має і свої вади, основною з яких є порівняно висока складність виконання арифметичних операцій, а отже, і більша вимогливість до ресурсів обчислювального пристрою. Це обмежує її застосування, наприклад, у спеціалізованих радіотехнічних обчислювальних пристроях, у системах управління технологічними процесами та обробки вимірювальної інформації у реальному часі.
Тема 1.5 Машинні коди чисел
Технічна реалізація операції додавання в ЕОМ значно простіша, ніж операції віднімання. З цієї причини в ЕОМ застосовують тільки схеми додавання, а операцію віднімання замінюють додаванням з використанням спеціально побудованих кодів. Застосовують наступні коди чисел: прямий, зворотній, додатковий і модифіковані. Прямий код використовують для множення і ділення, а зворотній і додатковий коди - для заміни операції віднімання додаванням. Зображення додатніх чисел у всіх кодах збігаються, а від'ємних чисел відрізняються. Будемо розглядати способи кодування чисел за абсолютною величиною менші одиниці, тому що будь-яке інше число завжди можна представити у вигляді мантиси (за абсолютною величиною, меншою від одиниці) і цілого ступеня основи S=2.
Прямий код. Число X у прямому коді позначається [Х]пр. Прямий код числа X отримують за наступним правилом: якщо Х= +0, Х1Х2, ..., Хn, то [Х]пр = 0, Х1,Х2,..., Хп; якщо Х=-0, Х1Х2 ...,.Хn, то [Х]пр = 1, Х1Х2, ..., Хn, де Х1 X2 ,..., Хn -- двійкові розряди числа. Таким чином, прямий код двійкового числа збігається по зображенню з двійковим записом самого числа, але в знаковому розряді (на місці нуля цілих) ставиться 0, якщо число позитивне, і 1, якщо число негативне. Наприклад, маємо числа N1= 0,101 і N2 = -0,110. Потрібно їх представити в прямому коді. Якщо N1 = 0,101, то [N1]пр = 0,101; якщо N2= -0,110, то [N2]пр=1, 110.
Зворотній код. Число X у зворотньому коді позначається [Х]зв. Як уже відзначалося, зворотній код додатнього числа збігається з його прямим кодом, тобто при X 0 [X]зв=[X]пр=X. Для від'ємного числа зворотній код отримують за наступним правилом: у знаковий розряд числа записується одиниця, а в цифрових розрядах нулі заміняються одиницями, а одиниці - нулями. Таким чином, якщо маємо від'ємне число Х = -0, Х1Х2,…Хn, то його зображення в зворотньому коді буде [Х]зв= 1, , ..., , де (i= 1,2,..., n) означає звертання (чи інверсію) цифрових розрядів, тобто = l, якщо Xі = 0, і = 0, якщо Хі = 1. Наприклад, переведемо число -0,1001 у зворотній код: якщо Х= -0,1001, то [Х]зв = 1,0110. В ЕОМ при додаванні зворотніх кодів за відповідними правилами виходить зворотній код суми.
Додатковий код. Число X у додатковому коді позначається [X]дод. Додатковий код додатнього числа збігається з його прямим кодом, тобто при X > 0 [Х]дод = [Х]пр= X. Для від'ємного числа додатковий код отримуємо за наступним правилом: у знаковому розряді записується одиниця, у всіх цифрових розрядах нулі замінюються одиницями, а одиниці нулями (аналогічно тому, як це виконується в зворотньому коді), після чого до молодшого розряду додається одиниця. Таким чином, для від'ємного числа X = - 0, Х1Х2,…,Хn додатковий код буде представлений у виді [X]дод =1, , ..., +0,00...01, де = 1, якщо Хі = 0, і = 0, якщо Хі = 1.
Слід зазначити, що додатковий код є доповненням його прямого коду до двох (до основи системи числення). При цьому необхідно мати на увазі, що доповнення числа до двох можна одержати, беручи доповнення кож-ного розряду двійкового числа до одиниці і додаючи потім одиницю в мо-лодший розряд. Це дає можливість одержувати доповнення до одиниці в кожному двійковому розряді простим звертанням (інверсією) цих розрядів. Дійсно, якщо поміняти нулі на одиниці й одиниці на нулі, наприклад, у чис-лі 1011, тo одержимо той же результат, що і при відніманні його від одиниць:
З усього сказаного випливає, що [Х]дод =[Х]зв+0,00...01. Таким чином, щоб одержати число в додатковому коді, його перетворюють у зворотній код (шляхом простого звертання розрядів), а потім до молодшого розряду отриманого числа додають одиницю. Наприклад, представимо числа N1 = 0,1111 і N2= -0,1111 у прямому, зворотньому і додатковому кодах; [N1]пр=[N1]зв=[N1]дод =0,1111; [N2]пр=1,1111; [N2]зв= 1,0000; [N2]дод = 1,0001. При додаванні додаткових кодів за відповідними правилами в машині одержують додатковий код суми.
Модифіковані коди. Крім зворотнього і додаткового кодів у багатьох ЕОМ застосовують модифіковані зворотні і додаткові коди, що позначаються відповідно [X]мзв і [Х]мдод. Ці коди відрізняються від звичайних тим, що в них під знак числа виділяється не один, а два розряди. Так, для попереднього прикладу N1 = 0,1111 і N2= -0,1111 будемо мати [N1]мзв= [N1]мдод= 00,1111; [N2]мзв= 11,0000; [N2]мдод = 11,0001. Як уже відзначалося, модифіковані коди зручні для виявлення переповнення розрядної сітки, що може відбутися при додаванні чисел.
Тема 1.6 Алгоритми виконання операцій додавання та віднімання в арифметико-логічному пристрої ЕОМ
Додавання і віднімання чисел. Як уже відзначалося, в ЕОМ не роблять безпосередньо операцію віднімання. Її замінюють виконанням операції додавання з використанням зворотнього чи додаткового коду.
Спочатку розглянемо додавання чисел у машинах з фіксованою крапкою. Для цієї мети повинна бути виконана така послідовність дій: перетворення прямого коду вихідних чисел у зворотній (чи додатковий); порозрядне додавання кодів (з урахуванням можливих переносів з розряду в розряд); перетворення результату знову в прямий код при його передачі в інші пристрої машини.
При порозрядному додаванні зворотніх (чи додаткових) кодів знакові розряди додають як розряди мантис. Якщо в результаті додавання утвориться одиниця переносу зі знакового розряду, то при використанні зворотніх кодів її додають до молодшого розряду суми (ця операція називається циклічним переносом), а у випадку додаткових кодів цей перенос не враховують.
Нехай числа X i Y, що додаються, є правильними дробами, а їхня сума за абсолютною величиною менша від одиниці, тобто |X + Y| < 1. При додаванні зворотніх (чи додаткових) кодів можливі чотири різних випадки, які розглянемо на конкретних прикладах.
1. X > 0, У > 0, X + У > 0. Цей випадок не відображає особливостей використання зворотнього чи додаткового коду, тому що для додатніх чисел ці коди збігаються із прямим кодом.
2. X > 0, Y < 0, X + Y < 0. Нехай потрібно додати X = +3 і Y= -6. Оскільки Х= 0112 і Y = -1102, то [Х]пр = [Х]зв = [X]дод = 0.011, а [Y]пр = 1.110, [Y]зв = 1.001 і [Y]дод = 1.010.
При додаванні зворотніх і додаткових кодів відповідно маємо
Переведемо отримані результати в прямий код, двійковий та десятковий записи: [1.100]зв [1.011]пр - 0112 - 310; [1.101]дод [1.100]зв [1.011]пр -0112 -310. Результат в обох випадках отримали вірний, тому що 3-6=-3.
3. X > 0, Y < 0, X + Y > 0. Нехай тепер потрібно додати Х =+6і Y = -3. Для цього випадку маємо: [Х]пр = [Х]зв = [X]дод = 0.110; [Y]пр = 1.011; [Y]зв = 1.100; [У]дод = 1.101. При додаванні зворотних і додаткових кодів відповідно одержимо
У даному випадку при використанні додаткових кодів одиницю переносу, що утвориться при додаванні знакових розрядів, відкидають, а при використанні зворотних кодів -- циклічно додають до молодшого розряду мантиси. Сума в обох випадках вийшла додатня і дорівнює [X+Y]зв= [X+Y]дод = [X+Y]пр = 0.011 = +0112= +310. Таким чином, отримано правильний результат додавання, тому що 6 - 3 = +3.
4. X < 0, Y < 0, X + Y < 0. Нехай потрібно додати X = -3 і
Y = -4. У результаті повинно вийти X + Y = -710 = -1112. Переконаємося в цьому. Для даного випадку маємо [Х]пр =1.011, [Х]зв = 1.100, [X]дод = 1.101; [Y]пр = 1.100, [Y]зв = 1.011, [Y]дод =1.100. При додаванні зворотніх і додаткових кодів відповідно отримаємо
Переведемо отримані результати в прямий код. [1.000]зв [1.111]пр - 1112 - 710; [1.001]дод [1.000]зв [1.111]пр -1112 -710. В обох випадках отримали правильний результат.
Розглянемо тепер виконання операції додавання в машинах з плаваючою комою. Для виконання даної операції необхідно спо-чатку вирівняти порядки доданків, для чого менший порядок збіль-шується до більшого, а його мантиса нормалізується на відповідне число розрядів. Порядком суми є загальний порядок доданків. Потім додають мантиси з використанням зворотнього чи додаткового коду (звичайного чи модифікованого). Це додавання виконують за тими самими правилами, що і в машинах з фіксованою крапкою. При цьому можуть зустрі-чатися три різних випадки, які розгялнемо на конкретних прикладах.
1. Додавання відбувається без переповнення розрядної сітки і порушення нормалізації. Нехай потрібно додати два числа X=-210=-102 i Y=+710 = +1112. В нормальній формі ці числа представляють у вигляді X=-0,1 210 i Y=+0,111 211. В машині з плаваючою комою їм відповідають наступні записи:
Порядки у цих чисел різні, тому потрібно збільшити на одиницю порядок числа Х, зсунувши при цьому його мантису на один розряд вправо. Після вирівнювання порядків отримаємо
Виконаємо тепер додавання мантис в модифікованому зворотньому коді:
в результаті отримали додатнє число, його прямий код співпадає зі зворотнім, тому X+Y 0 101 0 11, що відповідає X+Y=+0,101 211 =+1012 = +510, тобто результат додавання правильний, тому що -2+7=+5.
2. Додавання відбувається без переповнення розрядної сітки, але результат після переводу в прямий код виявляється ненормалізованим (старший розряд мантиси рівний нулю). Цей випадок називається порушення нормалізації вправо. Потрібну нормалізацію результату здійснюють зсувом мантиси вліво із відповідним зменшенням порядку суми.
Виконаємо алгебраїчне додавання чисел X=+5 і Y=-7. Результат повинен бути рівний X+Y = 5-7= -2. У формі з плаваючою комою доданки X і Y запишуться у вигляді
Х 0 101 0 11
Y 1 111 0 11
Вирівнювання порядків не потрібно,тому що вони одинакові і дорівнюють 310=112. Виконаємо додавання мантис в модифікованому зворотньому коді:
[Х]мзв = 00 101
+
[Y]мзв = 11 000
[X+Y]мзв= 11 101
Переведемо мантису в прямий код: [X+Y]мпр=11.010. У формі з плаваючою комою результат запишеться у вигляді: X+Y 1 010 0 11. Нормалізуємо результат зсувом мантиси вліво на один розряд і відповідним зменшенням порядку: X+Y 1 100 0 10. Таким чином, отримали результат: X+Y = -0,100 210= -102= -210.
При додаванні мантис відбувається переповнення розрядної сітки. Причиною переповнення є те, що сума |X + Y| 1. При використанні модифікованих кодів в знакових розрядах з'являються різні цифри, причому комбінація 01 має місце для додатньої суми,а комбінація 10 - для від'ємної. Отже, знак суми встановлюється по лівому з двох знакових розрядів. Даний випадок переповнення розрядної сітки прийнято називати порушенням нормалізації вліво.
При появі переповнення розрядної сітки ЕОМ автоматично виконує зсув результату на один розряд вправо, збільшує порядок на одиницю і заносить в правий знаковий розряд цифру, яка стоїть в лівому знаковому розряді. Розглянемо цей випадок на прикладі додавання чисел X = -2 і Y= -7, які у формі з плаваючою комою запишуться у вигляді
Х 1 1000 0 10
Y 1 1110 0 11
Після вирівнювання порядків отримаємо
Х 1 0100 0 11
Y 1 1110 0 11
Виконаємо додавання мантис в модифікованому зворотньому коді:
[Х]мзв = 11 1011
+
[Y]мзв = 11 0001
110 1100
+
1
[X+Y]мзв= 10 1101
Відбулося порушення нормалізації вліво. Після зсуву на один розряд вправо і збільшення результату порядку суми на одиницю переведемо результат в прямий код. Отримаємо правильний результат: X+Y = -0,100 2100= -10012= -910.
Розглянуті приклади свідчать про те,що в ЕОМ з плаваючою комою операцію додавання виконати дещо складніше, ніж в ЕОМ з фіксованою крапкою.
Таблиці додавання у вісімковій та шістнадцятковій системах числення.
Дія додавання з числами у вісімковій системі числення виконується так, як вказано в таблиці 5.
Таблиця 5.
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
|
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
|
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
|
2 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
|
3 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
|
4 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
|
5 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
|
6 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
7 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
10 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
20 |
Арифметична дія додавання з шістнадцятковими числами виконується так, як показано в таблиці 6.
Таблиця 6.
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
А |
B |
C |
D |
E |
F |
|
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
|
2 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
|
3 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
|
4 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
|
5 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
|
6 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
|
7 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
8 |
8 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
9 |
9 |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
|
A |
A |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
|
B |
B |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
|
C |
C |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
|
D |
D |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
|
E |
E |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
1D |
|
F |
F |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
1A |
1B |
1C |
1D |
1E |
Тема 1.7 Алгоритми множення та ділення двійкових чисел в АЛП
Множення чисел
Числа в ЕОМ множаться в прямому коді за звичайними правилами арифметики двійкових чисел. Знак добутку визначається сумуванням знакових розрядів співмножників, причому одиницю переносу в старший розряд, яка утворюється при додаванні, не враховують. При однакових знаках у співмножників знак добутку отримується “+”, а при різних - знак “ - “ : 0+0=0, 0+1=1, 1+0=1, 1+1=0.
Розглянемо спочатку виконання операції множення в ЕОМ з фіксованою крапкою. Процес множення зводиться до порозрядного множення першого множника на кожний розряд другого множника, потім до зсуву і додаванню отриманих проміжних добутків. При цьому проміжні добутки або дорівнюють множнику, на який множать, якщо в даному розряді множника стоїть одиниця, або дорівнюють нулю. Тому множення фактично складається з послідовних зсувів і додавання проміжних добутків, отриманих в результаті зсувів.
Процес множення може здійснюватися з зсувом вліво чи вправо. В першому випадку множення починають з молодшої цифри множника, а у другому - зі старшої. Якщо даний розряд множника містить нуль, то просто здійснюють зсув проміжного добутку, тобто пропускають такт додавання з проміжним добутком, рівним нулю.
Якщо співставити процес множення на машині з послідовністю дій, які виконуємо ручним способом, то можна побачити багато спільного. Розглянемо спочатку множення ручним способом на наступному прикладі:
0,1001
х
0,0101
1001
0000
+
1001
0000
0,00101101
Тепер виконаємо це множення на машині, використовуючи зсув множника вправо. При цьому в суматорі , який здійснює сумування проміжних добутків, передбачено подвійна кількість розрядів порівнно зі співмножниками:
00000000 Множник
Додати 10010000 1
(множник) ________
10010000
Зсунути 01001000
(не додавати) 0
Зсунути 00100100
Додати 10010000 1
________
10110100
Зсунути 01011010
(не додавати) 0
Зсунути 00101101
________
00101101
Таким чином, отримали той же результат, що й при ручному рахунку. Аналогічно реалізуєтья множення зсувом множника вліво.
Після виконання операції множення необхідно здійснити округлення результату до потрібної кількості розрядів. Якщо в старшому, який відкидаємо, розряді нуль, то молодший з тих, що залишаються, розрядів не змінюється, якщо одиниця, то вона додається до молодшого з тих, що залишилися. В останньому прикладі при заокругленні добутку до чотирьох розрядів (як і у спімножників) необхідно до четвертого розряду після коми додати “1” з п'ятого розряду, тобто отримаємо
0,0010
+
1
0,0011
В ЕОМ з плаваючою комою процес множення протікає аналогічно, з тією лише різницею, що при цьому додається операція визначення порядку добутку алгебраїчним дродаванням порядків співмножників і проводиться, якщо необхідно, нормалізація результату з відповідною зміною порядку добутку. Розглянемо приклад множення чисел Х=0,00101101 і Y= -10000,1. В машині з плаваючою комою ці числа запишуться у вигляді
Х 0 101101 1 010
Y 1 100001 0 101
Знак добутку дорівнює: 0+1=1. Порядок добутку дорівнює алгебраїчній сумі порядків спімножників, тобто (-010)+101=+011. Перемножимо мантиси співмножників:
0,101101
х
0,100001
101101
+
101101 5 зсувів
0,010111001101
Після округлення до шести розрядів після коми результат добутку запишеться у вигляді X Y 1 010111 0 011. Виконаємо нормалізацію вліво на один розряд, а потім зменшимо порядок добутку на одиницю, в результаті отримаємо X Y 1 101110 0 010.
Ділення чисел
Якщо множення виконується в ЕОМ з допомогою чисельних зсу-вів і додавань, то ділення, яке є операцією оберненою до множення, ви-конується з допомогою чисельних зсувів і віднімань. Знак частки, як і при множенні, визначається шляхом сумування знакових розрядів діле-ного і дільника без врахування можливого переносу в старший розряд.
Так я к і при ручному рахунку, розряди частки при діленні чисел визначаються (починаючи зі старшого) послідовним відніманням дільника від остачі, отриманої від попереднього віднімання.
При визначенні першої цифри частки за остачу приймають все ді-лене. Після кожного віднімання остача зсувається вліво по відношенню до дільника. Якщо остачу отримали додатню (чи рівну нулю), то у відповідний розряд частки записується одиниця, а якщо від'ємну то нуль.
Щоб отримати наступну після нуля цифру частки, необхідно від останньої додатньої остачі відняти дільник, додатково зсунутий на один розряд вправо. Зазвичай замість зсуву дільника вправо здійснюють зсув остачі вліво, що, по суті, нічого не змінює.
Оскільки в ЕОМ операція віднімання в безпосередньому вигляді не виконується, послідовне віднімання замінюють додаванням остач з оберненим чи додатковим кодом дільника. При цьому остачі отримують у відповідному коді.
Спочатку розглянемо виконання операції ділення у машинах з фіксованою крапкою. Для таких машин ділення можливо за умови,що ділене за абсолютною величиною менше від дільника. Інакше виникне переповнення розрядної сітки.
Нехай дані два числа: X=0,1001 і Y=0,1101, які потрібно поділити. Виконаємо спочатку ділення ручним способом. Після кожного віднімання дільник зсуваємо вправо по відношенню до діленого. Якщо остачу після віднімання отримуємо додатню, то в даний розряд частки записується одиниця, а якщо від'ємну, то нуль. На практиці зазвичай від'ємну остачу не записують, просто дільник додатково зсувається на один розряд вправо і віднімається від останньої додатньої остачі.
Операція ділення реалізується в машинах за двома алгоритмами - з відновленням остачі і без її відновлення. В першому випадку при отриманні від'ємної остачі в даному розряді частки записується нуль і відновлюється попередня додатня остача додаванням до отриманої від'ємної остачі дільника в прямому коді. Відновлена остача після цього зсувається додатково на один розряд вліво (аналогічно додатковому зсуву дільника при обчисленні вручну).
Весь процес ділення виконується в три такти, які послідовно повторюються до закінчення операції: перший такт - зсув остачі вліво; другий такт - віднімання від зсунутої остачі дільника (додавання в додатковому чи зворотньому коді); третій такт - запис одиниці у відповідний розряд частки, якщо залишок після віднімання отримався додатній, і нуля, якщо залишок отримали від'ємний (в останньому випадку в цьому ж такті виконують відновлення попередньої остачі).
Алгоритм ділення без відновлення остачі отримав ширше застосування. Він полягає в тому, що при отриманні від'ємної остачі у відповідний розряд частки записується нуль, а потім ця остача зсувається вліво на один розряд і до неї додається дільник в прямому коді. В результаті такого додавання отримуємо наступну остачу, у якої аналізується знак і в залежності від цього виконуються наступні дії.
В ЕОМ з плаваючою комою при діленні окрім розглянутих дій визначається порядок частки відніманням від порядку діленого порядку дільника, а також виконується при необхідності нормалізація результату вправо, якщо отримаємо частку більшу від одиниці (в цих машинах не потрібно, щоб ділене було менше дільника). В подальшому операція ділення протікає аналогічно.
Розділ 2. Логічні основи ЕОМ
Тема 2.1 Операції алгебри логіки. Основні закони алгебри логіки
Поняття про логічну функцію
В електронних обчислювальних машинах інформація піддається не лише арифметичній, але й логічній обробці. При цьому машина виконує певні перетворення над двійковими числами, в результаті яких утворюються двійкові числа, які є результатом виконання відповідної логічної операції.
В основі роботи логічних схем і пристроїв ЕОМ лежить спеціальний математичний аппарат, який називається математичною логікою, в якій вивчаються питання застосування математичних методів для розв'язку різних логічних задач.
В ЕОМ використовується в основному початковий розділ математичної логіки - алгебра логіки, яка часто називається числення висловів. Під численням розуміють будь яке твердження, про яке можемо сказати, що воно істинне чи хибне. У логіці висловів цікавляться не змістом висловлювань, а лише їхньою істинністю чи хибністю; ніякі інші ознаки висловів в алгебрі логіки не розглядаються. Одне й те саме висловлювання не може бути одночасно істинним і хибним чи не істинним і не хибним.
Граматичними засобами в розмовній мові з кількох простих висловлювань можна скласти складне висловлювання. Наприклад, за допомогою сполучників І та АБО і заперечної частки НЕ можна з простих висловів: хибного - “Київ стоїть на березі Пруту” та істинного - “Чернівці стоять на березі Пруту” скласти наступні складні висловлювання: “Київ не стоїть на березі Пруту”, “Київ не стоїть на березі Пруту і Чернівці стоять на березі Пруту”, “Київ стоїть на березі Пруту чи Чернівці стоять на березі Пруту”. Усі три вислови істинні.
Якщо вислів істинний то кажуть, що його значення дорівнює одиниці, якщо вислів хибний, то його значення дорівнює нулю. Таким чином, значення висловів можна розглядати як змінну величину, яка приймає лише два дискретних значення - 0 або 1. Це приводить до повної відповідності між логічними висловлюваннями в математичній логіці і двійковими цифрами у двійковій системі числення, що дозволяє описувати роботу логічних схем і проводити їх аналіз і синтез за допомгою математичного апарату алгебри логіки.
Будь який пристрій ЕОМ, який виконує арифметичні дії над двійковими числами, можна розглядати як функціональний перетворювач, вхідними змінними (аргументами) якого є вихідні двійкові числа, а вихідною функцією від них - нове двійкове число, яке утворилось в результаті виконання даної операції. При цьому як вхідні змінні, так і вихідні функції можуть приймати лише одне з двох можливих значень - 0 і 1.
У кожному конкретному випадку кількість вхідних змінних може бути різна. В найпростішому випадку це може бути одна змінна Х, яка приймає значення або 0, або 1. У загальному випадку таких змінних може бути n: Х1, Х2,…,Хn, причому як і раніше, кожна з цих змінних приймає лише одне з двох можливих значень - 0 або 1.
Функція f (Х1, Х2,…,Хn), яка визначається набором вхідних двійкових змінних Х1, Х2,…,Хn і приймає в якості своїх можливих значень 0 або 1, називається логічною функцією або функцією алгебри логіки (ФАЛ).
Табличне представлення логічних функцій
Як уже зазначалось, кількість аргументів (вхідних змінних) логічної функції може бути різним. Оскільки кожна змінна при цьому може бути рівною чи 0 чи 1, то в результаті цього можуть бути утворені їх найрізноманітніші сполучення чи, як кажуть, набори вхідних змінних.
В алгебрі логіки строго доводиться, що для n змінних існує 2n різних наборів. Переконаємось в цьому на кількох прикладах. Так, для однієї змінної Х існують тільки два набори: чи <0>, чи <1>, тобто 21=2. Для двох змінних можуть бути утворені вже чотири різних набори, тому що 22=4. Дійсно, <0,0>; <0,1>; <1,0>; <1,1>. Для трьох змінних буде існувати вже вісім різних наборів (див. таблицю), оскільки 23=8. Табличне представлення логічних функцій дає значення цих функцій для різних наборів вхідних змінних. За допомогою аналогічних таблиць зручно описувати функціонування різних логічних елементів, вузлів і пристроїв ЕОМ.
Таблиця 7
Х1 |
Х2 |
Х3 |
|
0 |
0 |
0 |
|
0 |
0 |
1 |
|
0 |
1 |
0 |
|
1 |
0 |
0 |
|
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
0 |
|
1 |
1 |
1 |
Приймемо без доведення, що загальна кількість різних логічних функцій від n аргументів дорівнює 22n. Наприклад, для n=1,2,3 і т.д. їх буде відповідно 4,16,256 і т.д.
Операції алгебри логіки
Розглянемо для двох змінних різні логічні функції (див. таблицю) і відповідні їм логічні операції, які можуть бути реалізовані в ЕОМ. Розглянемо ці функції не в порядку їх нумерації, а в послідовності, яка дозволить виявити їх загальні і найхарактерніші властивості.
Таблиця 8. Значення логічних функцій двох змінних
Х1 |
Х2 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
|
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
|
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
|
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1. 9(Х1, Х2) - кон'юнкція (логічне множення чи операція І) змінних Х1, Х2, яка має значення одиниці лише в тому випадку, коли аргументи Х1 і Х2 одночасно дорівнюють 1, і нуль - у всіх інших випадках, тобто коли хоча б один аргумент дорівнює нулю. Іншими словами, функція кон'юнкції дорівнює min (Х1, Х2). Позначається кон'юнкція знаком , який читається як І, тобто запис Х1 Х2 слід читати “Х1 і Х2”. Значення кон'юнкції за значеннями аргументів знаходиться за правилами логічного множення (див. таблицю). У цій таблиці означає заперечення змінної Х, тобто =0, якщо Х=1, і =1, якщо Х=0. В загальному випадку функція кон'юнкції (або логічного множення) може бути визначена для будь-якої кількості аргументів, тобто Х1 Х2 Х3 … Знак може опускатися чи замінюватися крапкою, тобто може бути записано: Х1Х2Х3…
Правила логічного множення
00=0 |
Х0=0 |
|
01=0 |
Х1=Х |
|
10=0 |
ХХ=Х |
|
11=1 |
Х=0 |
2. 8(Х1, Х2) - заперечення кон'юнкції (чи функція Шеффера), тобто . Дана функція має значення нуль тільки в тому випадку, коли аргументи Х1 та Х2 одночасно дорівнюють одиниці, і одиницю - у всіх інших випадках, тобто коли хоча б один з аргументів дорівнює нулю.
3. 15(Х1, Х2) - диз'юнкція (логічне додавання чи операція АБО) змінних Х1, Х2, яка має значення нуль тільки в тому випадку, якщо аргументи Х1 і Х2 одночасно дорівнюють нулю, у всіх інших випадках вона дорівнює одиниці, тобто коли хоча б один аргумент дорівнює одиниці. Іншими словами, функці диз'юнкції дорівнює max(Х1,Х2). Позначається диз'юнкція значком , який читається як АБО, тобто запис Х1Х2 слід читати “Х1 або Х2”. Значення диз'юнкції за значеннями аргументів знаходиться за правилами логічного додавання (таблиця).
Правила логічного додавання
00=0 |
Х0=Х |
|
01=1 |
Х1=1 |
|
10=1 |
ХХ=Х |
|
11=1 |
Х=1 |
В загальному випадку функція диз'юнкції (або логічного додавання) може бути визначена для будь-якої кількості аргументів, тобто Х1Х2Х3…
4. 2(Х1, Х2) - заперечення диз'юнкції (чи операція Пірса), тобто . Дана функція має значення одиниці тільки в тому випадку, коли аргументи Х1 і Х2 одночасно дорівнюють нулю, у всіх інших випадках вона дорівнює 0 (тобто коли хоча б один аргумент =1).
5. 10(Х1, Х2) - еквівалентність (чи рівнозначність) змінних Х1, Х2. Дана функція має значення 1 у тому випадку, коли співпадають значення аргументів Х1 і Х2, у інших випадках вона =0. Позначається еквівалентність знаком , який читається як “рівнозначно”, тобто запис Х1 Х2 слід читати “Х1 рівнозначно Х2”.
6. 7(Х1, Х2) - заперечення еквівалентності (чи нерівнозначність) змінних Х1, Х2. Запис читається як “Х1 нерівнозначно Х2”. Можна переконатися, що значення функції нерівнозначності отримуються порозрядним додаванням двійкових змінних Х1 і Х2 по модулю 2, тобто без врахування переносів у старший розряд.
7. 12(Х1, Х2) - імплікація Х1 в Х2, яка має значення 0 тільки в тому випадку, коли змінна Х1 = 1, а Х2 =0, у інших випадках функція імплікації Х1 в Х2 = 1. Дана функція позначається Х1Х2 і читається як “якщо Х1, то Х2”.
8. 14(Х1, Х2) - імплікація Х2 в Х1, яка має значення 0 тільки в тому випадку, якщо змінна Х2=1, а Х1=0, у інших випадках функція імплікації Х2 в Х1 =1. Дана функція позначається Х2Х1 і читається як “якщо Х2, то Х1”.
9. 5(Х1, Х2) - заперечення імплікації Х1 в Х2, тобто . Дану функцію можна розглядати як функцію заборони з боку вхідної змінної Х2. Це означає, що вихідна функція має значення 0, якщо вхідна змінна Х2 = 1, у інших випадках вона повторює змінну Х1.
Подобные документы
Розрізняють дві форми подання двійкових чисел у ЕОМ: із фіксованою комою і з "плавучою" комою. Прямий, обернений і додатковий коди двійкових чисел. Алгоритми виконання арифметичних операцій (додавання, множення, ділення) над двійковими числами із знаком.
лекция [28,1 K], добавлен 13.04.2008Поняття арифметико-логічного пристрою. Правила формування прямого, оберненого та додаткового коду двійкових чисел. Побудова електрично-принципової схеми модулю блоку керування, який міг би виконувати не тільки операцію додавання, але й віднімання.
курсовая работа [1,6 M], добавлен 27.02.2012Подання чисел у нормальній формі. Порядок нормалізації чисел з рухомою комою. Правила додавання двійкових чисел з рухомою комою. Алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'ютера-симулятора DeComp.
лабораторная работа [31,7 K], добавлен 13.03.2011Операція алгебраїчного додавання, множення, ділення. Алгоритм ділення модулів чисел. Поняття граф-схеми алгоритму та правила її складання. Основні поняття теорії цифрових автоматів. Синтез керуючого автомата. Контроль виконання арифметичних операцій.
реферат [55,4 K], добавлен 24.03.2009Розробка алгоритму множення чисел у прямому коді з молодших розрядів із пропусканням тактів сумування для двійкових чисел. Синтез операційного та керуючого автоматів з жорсткою логікою. Описання технології числового контролю операції додавання по модулю.
курсовая работа [74,9 K], добавлен 14.03.2013Бібліотеки для дій з розрядно-логарифмічними діями. Перевірка оберненої матриці за допомогою одиничної у розрядно-логарифмічній формі. Код розрахунку оберненої матриці за методом Крамера. Алгоритми додавання, віднімання, множення, ділення чисел у РЛ.
курсовая работа [18,6 K], добавлен 17.10.2013Синтез цифрового автомата для виконання операції множення в оберненому коді двох двійкових чисел з фіксованою комою. Будування керуючого автомату з жорсткою логікою по принципу Мілі. Використання алгоритму множення з пропусканням тактів додавання.
курсовая работа [279,6 K], добавлен 14.03.2013Опис базової мікросхеми оперативного запам'ятовувального пристрою. Призначення виводів мікросхеми 132РУ6А, технологічні параметри. Спеціалізований арифметико-логічний пристрій з додавання двійкових чисел. Схема модуля керуючого й операційного блоків.
реферат [3,8 M], добавлен 25.11.2011Функції арифметико-логічного пристрою - виконання операцій над числами, що надходять до нього, за сигналами з пристрою керування. Правила переводу чисел з однієї системи числення в іншу. Розроблення алгоритму; функціональна і принципова електричні схеми.
курсовая работа [1,0 M], добавлен 27.04.2014Арифметичні основи, на яких ґрунтується функціонування комп'ютерної техніки. Основні поняття дискретної обробки інформації. Системи числення, форми подання чисел у комп'ютерах. Арифметичні операції, що виконуються над числами, подані у двійковому коді.
учебное пособие [903,6 K], добавлен 18.12.2010