МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЛЬВІВСЬКИЙ ДЕРЖАВНИЙ ІНСТИТУТ НОВІТНІХ ТЕХНОЛОГІЙ ТА УПРАВЛІННЯ ІМ. В. ЧОРНОВОЛА
Арифметико-логічні основи
цифрової схемотехніки
Методичні вказівки
до практичних занять № 1 з дисципліни
“Комп’ютерна схемотехніка ”
Затверджено
на засіданні кафедри КСМ
Протокол № 1 від 29.08. 2008 р.
ЛЬВІВ 2008
Арифметико-логічні основи цифрової схемотехніки. Методичні вказівки до практичних занять № 1 з дисципліни "Комп’ютерна схемотехніка”.
Упорядники: Сергій Сергійович Івчук, ст. Викладач каф. Ксм
Арифметико-логічні основи цифрової схемотехніки
системи числення;
форми подання чисел;
1. Системи числення
1.1 Системою числення називають систему прийомів та правил, які дають змогу встановлювати взаємно однозначну відповідність між довільним числом та його поданням у вигляді сукупності скінченої кількості символів (цифр). Залежно від способу подання чисел за допомогою символів (цифр) системи числення поділяються на позиційні і непозиційні.
П р и к л а д: Найбільш відома десяткова система числення, в якій для запису використовуються цифри 0, 1, 2, …, 9. Звідки число записується: 2, 4, 59, 555.
Подання запису чисел цифровими знаками існує велика кількість. Довільна система числення, яка призначена для практичного використання повинна забезпечувати:
можливість подання довільного числа в діапазоні величин що розглядаються;
єдине подання (довільній комбінації символів повинна відповідати одна і тільки одна величина);
високу швидкодію в процесі обробки цифрової інформації.
1.2 Непозиційна система числення – система, для якої значення символу (цифри) не залежить від його положення в числі.
Самий простий спосіб запису числа в непозиційній системі числення можемо записати наступним способом
АD = D1 + D2 + … + Dk = , (1)
де АD – запис числа А в системі числення D; Dі – символ системи, який створює базу D = {D1, D2, …, Dk}.
П р и к л а д: Достатньо широко використовується римська система числення, де використовується сім символів (цифр) – I - 1, V - 5, X - 10, L - 50, C- 100, D - 500, M - 1000. Тому числа в даній системі записуються: II – 2, IV – 4, LIX – 59, DLV – 555.
В загальному випадку систему числення можливо сформувати за наступним принципом:
AB = a1B1 + a2B2 + … + anBn, (2)
де AB – запис числа А в системі числення з основою Bі; an – цифра (літера) системи числення з основою Bі; Bі – база або основа системи.
Якщо прийняти, що Bі = qі, то з врахуванням попереднього запису в загальному випадку довільну позиційну систему числення з основою q можемо подана у вигляді полінома
А(q) = аnqn + аn-1qn-1 + … + а1q1 + а0q0 + а-1q-1 - а-mq-m, (3)
де А(q) – число в позиційній системі числення з основою q; а – коефіцієнт; n – степінь та індекс.
1.3. Позиційна система числення – система в якій значення кожної цифри, яка входить в дане число, залежить і змінюється від положення в записі числа.
Інакше говорячи – позиційна система числення повинна задовольняти умові рівності Bі = qі Bі-1. Натуральна позиційна система числення має місце, коли q – ціле, додатне число. Звідки:
А(q) = аnqn + аn-1qn-1 + … + а1q1 + а0q0 + а-1q-1 - а-mq-m = (4)
де А(q) – довільне число в позиційній системі числення з основою q; n +1, m – кількість цілих та дробових розрядів.
Довільна позиційна система числення характеризується основою. Основою (базисом) q натуральної позиційної системи числення – кількість цифр або літер, які використовуються для подання числа в даній системі. Позиційна система числення з однаковою основою в кожному розряді називається однорідною. Оскільки на значення q немає обмежень, то теоретично можлива нескінчена множина позиційних систем числення.
Позиційні системи числення можуть бути різними залежно від основи: десяткові – за основою десять; вісімкові – за основою вісім; шістнадцяткові – за основою шістнадцять; двійкові – за основою два, та інші.
П р и к л а д: Наприклад, запис числа в шістнадцятковій системі може виконуватися за допомогою наступних знаків (цифр та літер): 0, 1, …, 9, A, B, C, D, E, F (літери A, …, F можемо замінити довільними символами ).
На практиці використовують скорочене подання числа у вигляді послідовності цифр (символів):
для змішаного числа
Aq = ±anan-1…a1a0a-1…a-m; (5)
для цілого числа
Aq = ±anan-1…a1a0; (6)
для правильного дробу
Aq = ±0,a-1…a-m. (7)
П р и к л а д: Наведемо приклад подання чисел за допомогою відповідного полінома:
двійкова система числення q = 2, аі 0, 1:
А2 = 1011,101 = 123 + 022 + 121 + 120 + 12-1 + 02-2 + 12-3 = 11 = 11,62510;
вісімкова система q = 8, аі 0, 1, 2, …, 7:
А8 = 154,25605 = 182 + 581 + 480 + 28-1 + 58-2 + 68-3 + 08-4 + 58-5 = 108,3410;
десяткова система q = 10, аі 0, 1, 2, …, 9:
А10 = 163,46 = 1102 + 6101 + 3100 + 410-1 + 610-2;
шіснадцяткова система q = 16, аі 0, 1, 2, …, 9, А, В, …, F:
А16 = 6C16 = 6161 + C160 = 10810.
Якщо в даному розряді накопляється кількість одиниць, рівна або більше q (основи системи числення), то повинна проходити передача одиниці в сусідній старший розряд. При додаванні такі передачі інформації називають переносом, а при відніманні – позикою. Передача переносів або позик проходить послідовно від розряду до розряду.
Довжина числа – кількість позицій (або розрядів) в записі числа. На практиці довжина числа інтерпретується як довжина розрядної сітки. Для різних систем числення характерна різна довжина розрядної сітки, необхідної для запису одного і того ж числа.
П р и к л а д: 9610 = 1408 = 101203 = 11000002. В даному випадку одне і теж число, подане в різних базисах, має різну довжину розрядної сітки.
Якщо довжина розрядної сітки задана, то це обмежує максимальне (або мінімальне) за абсолютним значенням число, яке може бути записане.
В сучасних комп’ютерних системах використовують, крім розглянутих вище, ряд спеціальних позиційних двійкових систем:
систему з використанням символів 0, -1 або 1, -1; для зручності символ -1 позначають ; таку систему називають системою числення (1, );
системи числення з від’ємною основою q < -1 і символами 0, 1, … (q - 1); систему з основою q = -2 і символами 0, 1 називають мінус-двійковою;
надлишкову систему з основою q і кількістю символів більше q, наприклад при q = 2 використовують символи (1, 0, ), таку систему числення називають симетричною знакорозрядною.
1.4. Правильний вибір системи числення – важливе практичне питання, оскільки від правильного його рішення залежить технічні характеристики ЕОМ і програмного забезпечення, як швидкодія, об’єм пам’яті, складність алгоритммів. Тому при виборі системи числення необхідно враховувати наступне:
основа системи числення визначає кількість стійких станів, які повинен мати функціональний елемент, що використовується для відображення розрядів числа;
довжина числа суттєво залежить від основи системи числення;
система числення повинна забезпечити прості алгоритми виконання арифметичних та логічних операцій.
Вісімкову систему числення використовують для виконання допоміжних функцій; вона скорочує запис числової інформації і забезпечує простоту перетворення у двійкову систему, оскільки кожну вісімкову цифру можна замінити на двійкове трирозрядне число – тріаду.
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
Переведення числа з однієї позиційної системи числення в іншу можемо подати наступним чином:
(8)
В загальному випадку задачу переводу числа з однієї системи числення з основою q1 в систему числення з основою q2 можемо визначити як визначення коефіцієнтів bj нового ряду, що відображає число з основою q2. Основна складність постає у виборі максимальної степені, яка ще міститься в числі Аq1. Всі дії повинні виконуватися за правилами q1-арифметики, тобто за правилами вихідної системи числення.
Після знаходження максимальної степені основи перевіряють "входження" в задане число всіх степенем нової основи, менших максимального. Кожне з відмічених степеней може "входити" в ряд не більше q2 – 1 раз, оскільки для довільного коефіцієнта ряду накладається обмеження:
0 аі q1 – 1 0 bj q2 – 1 (9)
П р и к л а д: Перевести число А = 9610 в систему числення з основою три (q2 = 3).
96 = 035 + 134 + 033 + 132 +231 + 030 = 101203 звідки А3 = 10120
Для реалізації автоматизованих алгоритмів переходу від однієї системи до іншої застосовують наступні методи.
Переведення цілих чисел відбувається діленням числа на основу q2 нової системи числення. Ціле число Аq1 в системі з основою q2 записується у вигляді
Аq2 = (10)
Переписавши даний вираз за схемою Горнера, отримаємо
Аq2 = (…((bkq2 + bk-1)q2 +…+ b1)q0 + b0. (11)
Права частина виразу (11) ділиться на величину основи q2. В результаті визначаємо перший залишок b0 та цілу частину (…((bkq2 + bk-1)q2 +…+ b1). Розділивши цілу частину на q2, знайдемо наступний залишок b1. Повторюючи процес ділення k + 1 раз, отримуємо останнє ціле часткове bk, яке, за умовою, менше основи системи q2 і є старшою цифрою числа, поданого в системі числення з основою q2.
П р и к л а д: Перевести десяткове число А=98 в двійкову систему числення (q2=2).
98 |
2 |
|
|
|
|
|
|
98 |
49 |
2 |
|
|
|
|
А2 = 1100010 |
b0 = 0 |
48 |
24 |
2 |
|
|
|
|
|
b1 =1 |
24 |
12 |
2 |
|
|
|
|
|
b2 = 0 |
12 |
6 |
2 |
|
|
|
|
|
b3 = 0 |
6 |
3 |
2 |
|
|
|
|
|
b4 = 0 |
2 |
1 = b6 |
|
|
|
|
|
|
b5 = 1 |
|
|
П р и к л а д: Перевести двійкове число А2 = 11001001 в десяткову систему числення (q2= 10). Основа q2 подається у двійковій системі числення q2 = 10 = 10102
11001001 |
1010 |
|
|
|
|
|
- |
|
|
|
|
|
|
1010 |
1010 |
|
1010 |
|
A10 = b2b1b0 = 105 |
|
|
- |
|
|
|
|
|
001100 |
1010 |
|
b2 = 1 |
|
|
|
- |
|
|
|
|
|
|
1010 |
b1 = 0000 |
|
|
|
|
|
b1=0101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Переведення правильного дробу множенням на основу q2 нової системи числення проходить наступним чином. Нехай вихідне число, записане в старій системі числення з основою q1, має вигляд
Аq1 = (12)
Тоді в новій системі з основою q2 число буде зображено як 0, b-1...b-S або
Аq2 = (13)
Переписавши даний вираз за схемою Горнера, отримаємо
Аq2 = . (14)
Якщо праву частину виразу (14) перемножимо на q2, тоді отримаємо новий неправильний дріб, в цілій частині буде число b-1. Якщо перемножимо дріб, що залишився на величину основи q2, отримаємо дріб, в цілій частині якого буде b-2, і т.д. Повторюючи процес множення S раз, знайдемо всі S цифр числа в новій системі числення. При цьому всі дії мають виконуватися за правилами q1-арифметики, тому в цілій частині дробів що отримуємо, появляються еквіваленти цифр нової системи числення, записані у вихідній системі числення.
П р и к л а д: Перетворимо десятковий дріб А = 0,625 в двійкову систему числення (q2 = 2).
0, |
|
625 |
|
|
|
|
|
|
|
2 |
|
b-1 =1, |
|
250 |
А2 = 0,1010 |
|
|
|
|
|
|
2 |
|
b-2 =0, |
|
500 |
|
|
|
|
|
|
|
2 |
|
b-3 =1, |
|
000 |
|
|
|
|
|
|
|
2 |
|
b-4 =0, |
|
000 |
|
П р и к л а д: Перетворити двійковий дріб А2 = 0,1101 в десяткову систему числення (q2 = 10 = 10102).
0, |
|
|
1101 |
|
|
|
|
|
|
|
|
|
1010 |
|
b-1 = 8 |
1000, |
|
0010 |
А10 = 0,8125 |
|
|
|
|
|
|
|
|
1010 |
|
b-2 = 1 |
0001 |
|
0100 |
|
|
|
|
|
|
|
|
|
1010 |
|
b-3 = 2 |
0010 |
|
1000 |
|
|
|
|
|
|
|
|
|
1010 |
|
b-4 = 5 |
0101 |
|
0000 |
|
При перетворенні правильних дробів з одної системи числення в іншу можемо отримати дріб у вигляді нескінченного ряду або ряду який розходиться. Процес перетворення можемо призупинити, якщо формується дробова частина, яка має у всіх рядках нулі, або буде досягнуто значення точності перетворення (отримано необхідну кількість розрядів результату). Останнє вимагає вказати кількість розрядів числа в новій системі числення. Очевидно, що при цьому виникає похибка перетворення чисел, яку необхідно оцінити.
Для перетворення неправильних дробів із одної системи числення в іншу необхідно проводити перетворення цілої та дробової частини окремо за правилами описаними вище.
В сучасних комп’ютерах використовують однорідні позиційні системи числення. При виборі основи числення використовують певні параметри.
Наявність фізичних елементів для зображення цифр системи у вигляді одного з q станів, наприклад, різниця напруг. Зменшення кількості станів спрощує фізичну структуру логічних елементів, тому для найбільш зручною є двійкова система числення.
Економічність системи числення. Система з більшою основою q забезпечує подання числа з меншою кількістю розрядів. Але при цьому ускладнюється реалізація фізичного елемента з більшою кількістю станів. Ефективність системи числення з основою qі оцінюється кількістю цифрових розрядів Dі, необхідних для зображення певного числа з довжиною nі, тобто Dі = qіnі. При цьому враховується, що зменшення значення Dі призводить до зменшення електричних схем для реалізації подання чисел в цифрових системах. Так для подання довільного десяткового числа довжиною n10 = 6 використовують D10 = q10n10 = 106 = 60 цифророзрядів. У двійковій системі для подання того ж числа (з врахуванням співвідношення n2 = 3 n2) необхідно мати D2 = q23n2 = 236 = 36 цифрових розрядів. Найбільш економічною є система з основою q = 2, 73 … 3.Двійкова система економічно поступається трійковій на 5,8 %, проте має надійніші фізичні елементи. Крім того для запам’ятовування цифр тріскової системи 0, 1, 2 використовуються два двійкових фізичних елементи. Тобто найефективнішою є двійкова система числення.
Трудомісткість та швидкодія виконання арифметичних операцій. Чим менша основа q, тим менше цифр бере участь в обчисленні даних і тим вища швидкодія цифрових систем.
Наявність формального математичного апарату для аналізу та синтезу цифрових схем. Таким апаратом для двійкових елементів є булева алгебра. Отже з врахуванням поданих вище показників видно, що найзручнішою для застосування в комп’ютерах є однорідна позиційна двійкова система числення. Двійкові системи числення використовують у великих і середніх комп’ютерах, призначених для розв’язку науково-технічних задач з великим об’ємом обчислень та відносно малою кількістю початкових даних.
Двійково-десяткову систему числення застосовують для вирішення економічних задач, які характеризуються великим об’ємом вхідних і вихідних даних і відносно малим об’ємом розрахунків.
Двійково-десяткова система має такі переваги:
не потрібно переводити дані з однієї системи в іншу;
зручність контролю результатів зображенням їх на екрані дисплея;
зручність автоматичного контролю через наявність надлишкових кодів в зображення цифр: 1010, 1011,…, 1111.
Завдання для освоєння матеріалу
Подати довільне число у вигляді полінома.
Приклад: Зобразити десяткове число 528,2310 у вигляді полінома:
528,2310 = 5102 + 2101 +8100 + 210-1 + 310-2.
Приклад: Зобразити двійкове число 10011,012 у вигляді полінома:
10011,012 = 124 + 023 + 022 + 121 + 120 + 02-1 + 12-2.
Приклад: Зобразити шістнадцяткове число АС3Е16 у вигляді полінома:
АС,3Е16 = А161 + С160 + 316-1 + Е16-2.
Перевести довільне ціле число з однієї системи числення в іншу.
Приклад: Подати у двійковій системі числення десяткове число 10810:
108 |
2 |
|
|
|
|
|
|
108 |
54 |
2 |
|
|
|
|
|
0 |
54 |
27 |
2 |
|
|
|
10810 = 11011002 |
|
0 |
26 |
13 |
2 |
|
|
|
|
|
1 |
12 |
6 |
2 |
|
|
|
|
|
1 |
6 |
3 |
2 |
|
|
|
|
|
0 |
2 |
1 |
|
|
|
|
|
|
1 |
|
|
Задане вище число можна перевести у двійкове при допомозі проміжної (вісімкової) системи числення у двійкову:
108 |
8 |
|
10810 = 1548 |
8 |
13 |
8 |
|
28 |
8 |
1 |
|
24 |
5 |
|
|
4 |
|
|
|
В наступному кроці вісімкове число за допомогою тріад перетворюємо у двійкове:
1 |
5 |
4 |
1548 = 11011002 |
001 |
101 |
100 |
|
Приклад: Перевести двійкове число 11011002 у десяткове:
11011002 = 126 + 125 + 024 + 123 + 122 + 021 + 020 = 64 + 32 + 8 + 4 = 10810.
Приклад: Перевести вісімкове число 1548 у десяткове:
1548 = 182 + 581 + 480 = 64 + 40 + 4 = 108.
Перевести довільне дробове число з однієї системи в іншу.
Приклад: Перевести десяткове число 0,34 у двійкове:
0,34 2 = 0,68 переносимо 0
0, 68 2 = 1,36 переносимо 1
0,36 2 = 0,72 переносимо 0
0,72 2 = 1,44 переносимо 1
0,44 2 = 0,88 переносимо 0
0,88 2 = 1,76 переносимо 1
0,76 2 = 1,52 переносимо 1
процес перетворення припиняємо з врахуванням заданої розрядної сітки або заданої точності подання числа, отримаємо 0,3410 = 0,01010112.
Приклад: Перевести десяткове число 0,3410 у вісімкове:
0,34 8 = 2,72 переносимо 2
0,72 8 = 5,76 переносимо 5
0,76 8 = 6,08 переносимо 6
0,08 8 = 0,64 переносимо 0
0,64 8 = 5,12 переносимо 5
перетворення припиняємо і отримуємо число 0,3410 = 0,256058.
Перевести довільне змішане число з однієї системи числення в іншу.
Для переведення змішаного числа у двійкову систему числення необхідно окремо перетворити цілу та дробову частину, так як показано прикладами наведеними вище, у записі результату перетворення ціла частина відділяється від дробової комою.
Приклад: Перетворення десяткового числа 108,3410 у двійкове:
108,3410 = 1101100,01010112.