Усі сучасні ЕОМ мають досить розвинену систему команд, що включає десятки та сотні машинних операцій. Однак виконання будь-якої операції засноване на використанні найпростіших мікрооперацій типу складання та зсуву. Це дозволяє мати єдиний арифметико-логічний пристрій для виконання будь-яких операцій, пов'язаних із обробкою інформації. Правила складання двійкових цифр двох чисел А і представлені в табл. 2.2.
Таблиця 2.2 Правила складання двійкових цифр
Тут показано правила складання двійкових цифр а i , b i однойменних розрядів з урахуванням можливих переносів з попереднього розряду р i -1 .
Подібні таблиці можна було б побудувати для будь-якої іншої арифметичної або логічної операції (віднімання, множення і т.д.), але дані цієї таблиці покладено в основу виконання будь-якої операції ЕОМ. Під знак чисел відводиться спеціальний знаковий розряд. Знак "+" кодується двійковим нулем, а знак "-" - одиницею. Дії над прямими кодами двійкових чисел під час операцій створюють великі труднощі, пов'язані з необхідністю врахування значень знакових розрядів:
По-перше, слід окремо обробляти значущі розряди чисел та розряди знака;
По-друге, значення розряду знака впливає алгоритм виконання операції (складання може замінятися відніманням і навпаки). В усіх без винятку ЕОМ всі операції виконуються над числами, представленими спеціальними машинними кодами. Їх використання дозволяє обробляти знакові розряди чисел так само, як і значущі розряди, а також замінювати операцію віднімання операцією додавання.
Розрізняють прямий код (П), зворотний (ОК) і додатковий код (ДК) двійкових чисел.
Машинні коди
Прямий коддвійкового числа утворюється з абсолютного значення цього числа та коду знака (нуль чи одиниця) перед його старшим числовим розрядом.
приклад 2.5.
Точковою вертикальною лінією тут відзначено умовну межу, що відокремлює знаковий розряд від значущих.
Зворотній коддвійкового числа утворюється за таким правилом. Зворотний код позитивних чисел збігається з прямим кодом. Зворотний код негативного числа містить одиницю у знаковому розряді числа, а значні розряди числа замінюються інверсні, тобто. нулі замінюються одиницями, а одиниці – нулями.
приклад 2.6.
Свою назву зворотний код чисел отримав, тому що коди цифр негативного числа замінені на інверсні. Вкажемо найважливіші властивості зворотного коду чисел:
Додавання позитивного числа С з його негативним значенням у зворотному коді дає так звану машинну одиницю МЕок = 111111, що складається з одиниць у знаковому і в значних розрядах числа;
Нуль у зворотному коді має подвійне значення. Він може бути як позитивним числом - 0 | 00 ... 0, так і негативним - 1 | 11 ... 11. Значення негативного нуля збігається з МЕок. Подвійне уявлення нуля стало причиною те, що у сучасних ЕОМ усі числа видаються не зворотним, а додатковим кодом.
Додатковий кодпозитивних чисел збігається з їх прямим кодом. Додатковий код від'ємного числа є результатом підсумовування зворотного коду числа з одиницею молодшого розряду (2 0 - для цілих чисел, 2 - k -для дрібних).
приклад 2.7.
Вкажемо основні властивості додаткового коду:
Складання додаткових кодів позитивного числа З його негативним значенням дає так звану машинну одиницю додаткового коду:
МЕдк=МЕок+2 0 =10 00...00,
тобто. число 10 (два) у знакових розрядах числа;
Додатковий код отримав таку назву тому, що подання негативних чисел є доповненням прямого коду чисел до машинної одиниці МЕдк.
Модифіковані зворотні та додаткові коди двійкових чисел відрізняються відповідно від зворотних та додаткових кодів подвоєнням значень знакових розрядів. Знак «+» у цих кодах кодується двома нульовими знаковими розрядами, а знак «-» - двома одиничними розрядами.
приклад 2.8.
Метою введення модифікованих кодів є фіксація та виявлення випадків отримання неправильного результату, коли значення результату перевищує максимально можливий результат відведеної розрядної сітці машини. У цьому випадку перенесення із значущого розряду може спотворити значення молодшого знакового розряду. Значення знакових розрядів "01" свідчить про позитивне переповнення розрядної сітки, а "10" - про негативне переповнення. В даний час практично у всіх моделях ЕОМ роль подвоєних розрядів для фіксації переповнення розрядної сітки грають переноси, що йдуть у знаковий та із знакового розряду.
1. ФОРМИ ПРЕДСТАВЛЕННЯ ЧИСЕЛ.. 6
2. ДВАЇВНА СИСТЕМА ЗЛІЧЕННЯ. 13
3. ВОСЬМЕРИЧНА СИСТЕМА ЗЛІЧЕННЯ. 15
4. ШІСТНАДЦАТЕРИЧНА СИСТЕМА ЗЛІЧЕННЯ. 17
5. ДВІЙКОВО-ДЕСЯТИЧНІ ЧИСЛА. 19
6. ДВІЙКОВА АРИФМЕТИКА. 20
7. АРИФМЕТИКА В ЗВОРОТНОМУ І ДОДАТКОВОМУ КОДАХ 22
8. МАТЕМАТИЧНА ЛОГІКА. 25
ВІДПОВІДІ ДО ВПРАВ.. 35
ПЕРЕДМОВА
Оволодіння базовими знаннями у галузі комп'ютерних технологій є дуже важливим завданням для програмістів. Глибоке розуміння арифметичних та логічних основ ЕОМ дозволяє створювати якісне програмне забезпечення.
У посібнику розглянуті способи представлення даних у пам'яті ЕОМ, їх структура та правила перетворення. Кожен із восьми розділів посібника присвячений певній темі, містить теоретичні відомості, приклади виконання арифметичних та логічних операцій, а також вправи для практичної та самостійної роботи студентів.
Посібник призначений для студентів очної та заочної форми навчання за спеціальністю «Програмне забезпечення обчислювальної техніки та автоматизованих систем».
Рекомендується наступна схема роботи з посібником. Після вивчення необхідного матеріалу на практичному занятті розбираються приклади виконання арифметичних та логічних операцій на ЕОМ. Кожен розділ містить необхідний обсяг теоретичних відомостей та формулювання проблеми. Потім студентам може бути запропоновано виконати вправи, що знаходяться в кінці розділу. Вправи мають різну складність, яка зростає зі збільшенням порядкового номера вправи.
Для швидкого виконання перетворень чисел з однієї системи числення в іншу, крім уміння застосовувати стандартні алгоритми перекладу, студенти повинні пам'ятати значення цілих ступенів числа 2 від 0 до 10, подання чисел від 0 до 16 у системах числення з підставами 2, 8, 10 та 16 , а також знати властивості систем числення з кратними підставами 2.
При виконанні арифметичних операцій рекомендується позначати всі позики та перенесення з одного розряду в інший, тим самим імітуючи роботу регістра ознак. При роботі з прямими, додатковими та зворотними кодами рекомендується використовувати розрядність 8 біт.
За виконання вправ з розділу «Математична логіка» необхідно твердо засвоїти символіку та визначення (таблиці істинності) трьох основних логічних операцій. При обчисленні значень логічних виразів пам'ятаймо пріоритет виконання логічних операцій.
Наприкінці навчального посібника наводяться відповіді до вправ.
ВСТУП
Широке впровадження обчислювальної техніки у всі сфери людської діяльності, ефективність цього процесу нерозривно пов'язані як з розвитком численних складних технічних розробок, так і з рівнем підготовки в цій галузі фахівців різного профілю. Відповідність функціональних можливостей обчислювальних систем та технологічного призначення пов'язаних з ними об'єктів зумовлює необхідність відповідної підготовки програмістів.
Вирішення цього завдання пов'язане як з організацією навчального процесу на всіх рівнях, включаючи і систему підвищення кваліфікації фахівців, так і з його навчально-методичним забезпеченням. Сучасні фахівці в галузі програмного забезпечення повинні мати знання як про апаратну, так і програмну частини обчислювальної техніки.
Обчислювальна техніка розвивається такими швидкими темпами, що зараз прийнято говорити про покоління обчислювальних машин, що відрізняються елементною базою, характеристиками та призначенням. Однак практично всі обчислювальні пристрої мають загальні арифметичні та логічні основи, форми представлення чисел, а також правила виконання арифметичних та логічних операцій. Саме ці питання розглядаються у цьому навчальному посібнику.
ФОРМИ ПРЕДСТАВЛЕННЯ ЧИСЕЛ
Будь-яка інформація подається в ЕОМ за допомогою цифрових знаків. Спосіб такого подання визначається прийнятою в ЕОМ системою числення. Системою числення називають сукупність прийомів та правил найменування та позначення чисел, за допомогою яких можна встановити взаємно однозначну відповідність між будь-яким числом та його поданням у вигляді сукупності кінцевого числа символів. Будь-яка система числення використовує деякий кінцевий алфавіт, що складається з цифр а1, а2, .... аn . При цьому кожній цифрі а і запису числа відповідає певний кількісний еквівалент (її «вага»).
Проаналізуємо «технологію» вирішення простого завдання – підрахунку однорідних предметів. Припустимо, на столі лежать сірники. Необхідно визначити їх кількість та записати її: один сірник - 1; ще один сірник - 1; і т.д. Отримаємо запис: 111111, де кожен сірник позначений символом 1. Підрахуємо кількість одиниць (символів сірників) і запишемо цю кількість у звичайній (звичній) для нас формі – 6 або по-іншому – VI. Отже, 6 = VI = 111 111, тобто. кількість сірників записано у різній формі. Форма запису 111111 дуже громіздка; форма запису числа 6 найбільш зручна та звична для нас.
У різні історичні періоди розвитку людства для підрахунків та обчислень використовувалися ті чи інші системи числення. Наприклад, досить поширена дванадцяткова система. Багато предметів (ножі, виделки, тарілки, хустки тощо) і зараз вважають дюжинами. Кількість місяців на рік – дванадцять.
Дванадцяткова система числення збереглася в англійській системі заходів (наприклад, 1 фут = 12 дюймів) та у грошовій системі (1 шилінг = 12 пенсів).
У стародавньому Вавилоні існувала дуже складна шістдесяткова система. Вона, як і дванадцяткова система, якоюсь мірою збереглася і до наших днів (наприклад, у системі вимірювання часу: 1 год = 60 хв, 1 хв = 60 с, аналогічно в системі вимірювання кутів: 1° = 60 хв, 1 хв = 60 с).
У деяких африканських племен була поширена п'ятіркова система числення, у ацтеків і народів майя, що населяли багато століть великі області американського континенту, - двадцятерична система. У деяких племен Австралії та Полінезії зустрічалася двійкова система числення.
Десяткова система виміру виникла Індії. Згодом її почали називати арабською тому, що її було перенесено до Європи арабами. Цифри, якими ми користуємося, - арабські.
У різні часи існували інші записи цифр, нині майже забуті. Однак досі ми іноді зустрічаємося із записом чисел за допомогою букв латинського алфавіту, наприклад на циферблатах годинника, у книгах для позначення розділів або частин, на ділових паперах для позначення місяців і т.д.
Система числення, у якій величина цифри визначається її місцезнаходженням (позицією), називається позиційною. Таким чином, десяткова система числення є позиційною. Римська система числення перестав бути позиційної, тобто. становище цифр не змінює її значення. Наприклад, число 9 запишемо як IX, а число 11 – як XI. При цьому знак I в обох випадках має те саме значення - одиниця, тільки в одному випадку він віднімається з десяти (X), а в іншому випадку - додається. У ЕОМ застосовуються лише позиційні системи числення. Число різних цифр системи числення називається її основою S.
У загальноприйнятій десятковій системі числення використовують десять різних цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Позиції цифр у записі числа називають розрядами. У десятковій системі числення ми маємо справу з розрядами одиниць, десятків, сотень і т. д., а також з розрядами десятих, сотих, тисячних і т. д. часткою одиниці. Іншими словами, у десятковій системі числення «вага» кожного розряду в 10 разів більша за «вагу» попереднього. Отже, будь-яке число в десятковій системі числення утворюється як сума різних цілих 10 ступенів з відповідними коефіцієнтами a i (0, 1, .... 9), взятими з алфавіту даної системи числення. Таким чином, запишемо десяткове число у загальному вигляді:
А = а 0 × 10 n + а 1 × 10 n -1 + а 2 × 10 n -2 + ... + а n -1 × 10 1 + а n × 10 0 = а 0 a 1 … а n -1 a n .
Розмір числа А визначається коефіцієнтами при ступенях числа 10. Звідси видно, що число 10 є основою системи числення, що у разі називається десяткової. Наприклад, десятковий запис 245,83 можна подати у вигляді:
245,83 = 2×10 2 + 4×10 1 + 5×10 0 + 8×10 –1 + 3×10 –2 .
Опускаючи різні ступені десяти, записують лише коефіцієнти при цих ступенях, тобто 245,83. Аналогічно:
531 = 5×10 2 + 3×10 1 + 1×10 0 = 531;
3527 = 3×10 3 + 5×10 2 + 2×10 1 + 7×10 0 = 3527;
28395 = 2×10 4 + 8×10 3 + 3×10 2 + 9×10 1 + 5×10 0 = 28 395.
Для фізичного уявлення чисел в ЕОМ необхідні елементи, які можуть бути в одному з кількох стійких станів. Число таких станів має дорівнювати підставі прийнятої системи числення. Тоді кожен стан представлятиме відповідну цифру з алфавіту даної системи числення. Найбільш простими з погляду технічної реалізації є звані двопозиційні елементи, здатні перебувати у одному з двох стійких станів - «включено» чи «выключено». Наприклад, електромагнітне реле замкнуте або розімкнене, магнітний матеріал намагнічений або розмагнічений, транзисторний ключ знаходиться в провідному або замкненому стані і т.п. Один із цих стійких станів може представляти цифра 0, а інший - цифра 1.
Простота технічної реалізації двопозиційних елементів забезпечила найбільшого поширення ЕОМ двійкової системи числення. Основа цієї системи S = 2. У ній використовуються лише дві цифри: 0 і 1. Будь-яке число в двійковій системі числення подається у вигляді суми цілих ступенів її основи S = 2, помножених на коефіцієнти; 0 або 1. Наприклад, двійкове число
11011,01 2 = 1×2 4 + 1×2 3 + 0×2 2 + 1×2 1 +
1×2 0 + 0×2 –1 + 1×2 - 2 = 16 + 8 + 2 + 1 + 0,25 = 27,25 10 ,
як це випливає з наведеного розкладання, відповідає десятковому числу 27,25 10 . Аналогічно:
12 10 = 1×2 3 + 1×2 2 + 0×2 1 + 0×2 0 = 1100 2;
42 10 = 1×2 5 + 0×2 4 + 1×2 3 + 0×2 2 + 1×2 1 + 0×2 0 = 101010 2 .
Крім двійкової в ЕОМ використовуються також вісімкова та шістнадцяткова системи числення, які застосовуються для більш короткого та зручного запису двійкових кодів. Підстави цих систем відповідають цілим ступеням числа 2 (8 = 2 3; 16 = 2 4), тому для них виключно прості правила переведення в двійкову систему числення і навпаки.
У пристроях індикації широко застосовується двійково-десятковий код. У таблиці наведено коди систем числення, з якої видно, що двійково-десятковий код відрізняється від десяткового тим, що в ньому кожне число розряду десяткового записується в двійковому коді.
У міжнародній системі позначень наведені в таблиці 1 коди позначаються наступним чином: десятковий - DEC (decimal), двійковий - BIN (binary), вісімковий - OCT (octal), шістнадцятковий - HEX (hexadecimal), двійково-десятковий - BDC (binary-decimal) code).
У ЕОМ застосовуються дві форми подання чисел: з фіксованою комою (точкою) та з плаваючою комою (точкою). Інакше ці форми відповідно називаються природною та напівлогарифмічною. Для названих форм уявлення чисел виділяється певну кількість nрозрядів, що утворюють розрядну сітку ЕОМ. Зі збільшенням n збільшуються діапазон чисел і точність виконуваних розрахунків.
При природній формі число представляється як цілої частини числа і відокремленої від неї точкою дробової частини. Якщо, наприклад, для цілої та дробової частин числа відводиться по три десяткові розряди, то число 245,6 буде представлено у вигляді: 245.600. Тут точка, що відокремлює цілу частину числа від дрібної, зафіксована після третього розряду.
Таблиця 1
Подання чисел у різних системах числення
Десятковий | Двійковий | Вісімковий | Шістнадцятирічний | Двійково-десятковий |
А | 0001 0000 | |||
У | 0001 0001 | |||
З | 0001 0010 | |||
D | 0001 0011 | |||
Е | 0001 0100 | |||
F | 0001 0101 | |||
0001 0110 | ||||
0001 0111 | ||||
0001 1000 | ||||
0001 1001 | ||||
0010 0000 |
Зазвичай точку фіксують праворуч від наймолодшого розряду, і тому в такій формі можуть бути лише цілі числа. Використовуються два варіанти подання цілих чисел: без знака та зі знаком. У першому випадку всі розряди служать уявлення модуля числа. У другому випадку для представлення знака числа виділяється крайній ліворуч розряд, в якому записується 0 для позитивних чисел і 1 - для негативних.
Діапазон чисел, представлених із фіксованою точкою, обмежений. Так, у n-розрядній сітці числа хбез знака можуть бути представлені в діапазоні 0 £ x £ 2 n -1. Для представлення чисел, які не вкладаються у цей діапазон, у процесі програмування вводять відповідні масштабні коефіцієнти. Необхідність масштабування даних - це суттєвий недолік уявлення чисел з фіксованою точкою. Інший недолік полягає в тому, що при такій формі подання чисел відносна точність розрахунків, що виконуються, залежить від значення чисел і досягає максимуму при виконанні операцій з максимально можливими числами.
У зв'язку з цим уявлення чисел з фіксованою точкою є основною і єдиною формою лише порівняно невеликих за своїми обчислювальним можливостям машин, наприклад, у контролерах. У ЕОМ, призначених на вирішення широкого кола завдань, переважно використовується уявлення чисел з плаваючою точкою. Однак і в таких ЕОМ для цілих чисел застосовується форма подання з фіксованою точкою, оскільки операції з цілими числами виконуються в цій формі простіше і за короткий час.
У формі з плаваючою точкою будь-яке число Nпредставляється у вигляді добутку двох співмножників: N = m×S р, де m - мантиса числа (|m|)<1); р - порядок числа (ціле число); S - основа системи числення (ціле число).
Наприклад, десяткове число 6,15 у формі з плаваючою точкою (комою) можна записати наступним чином:
6,15 = 0.615×10 1 ;
6,15 = 0.0615×10 2;
6,15 = 0.00615×10 3 і т.д.
Зі зміною порядку в той чи інший бік точка (кома) як би «плаває» у зображенні числа. Таким чином, при поданні чисел з плаваючою точкою в розрядній сітці ЕОМ необхідно записати зі своїми знаками мантису ±m та порядок ±р. Знак числа у своїй збігається зі знаком мантиси.
Для заданої розрядності мантиси точність обчислень стає найбільшою, якщо мантиса представлена нормалізованому вигляді. Модуль нормалізованої мантиси має задовольняти умові (1/S) £ |m| < 1, при якому старший розряд мантиси в S-річній системі числення не повинен дорівнювати нулю. У процесі обчислень можливе порушення нормалізації праворуч, коли | m |< (1/S), или влево, когда |m| ³ 1. В первом случае мантисса сдвигается влево до появления в старшем разряде ближайшей единицы. При этом в освобождающиеся младшие разряды мантиссы записываются нули и проводится соответствующее уменьшение порядка числа. При нарушении нормализации мантиссы влево производится ее сдвиг вправо с соответствующим увеличением порядка числа. Младшие разряды мантиссы, выходящие при этом за пределы разрядной сетки, отбрасываются.
ЕОМ обробляють як числову, а й різну алфавітно-цифрову інформацію, що містить крім цифр літерні, синтаксичні, математичні, різні управляючі та інші спеціальні символи. Така інформація подається в ЕОМ двійковими кодами (двійковими словами) відповідної розрядності.
ДВОЇЧНА СИСТЕМА ЗЛІЧЕННЯ
Як зазначалося, у більшості ЕОМ використовується двійкова система числення для подання та зберігання різної інформації, а також при виконанні арифметичних та логічних операцій. У двійковій системі числення основою є число 2. У разі для запису чисел використовують дві цифри: 0 і 1.
Переведення числа з десяткової системи числення в двійкову проводиться методом послідовного розподілу числа на 2 до тих пір, поки приватне від розподілу не стане рівним 1. Число в двійковій системі числення записується у вигляді залишків від розподілу, починаючи з останнього, справа наліво:
8 10 = 1×2 3 + 0×2 2 + 0×2 1 + 0×2 0;
8 10 = 8 + 0 + 0 + 0.
Переведення десяткового дробового числа у двійкову систему здійснюється у два етапи: спочатку перекладається ціла частина числа (див. вище), потім дробова. Дробова частина перекладається шляхом послідовного множення дробової частини на два. Двійкове число записується як цілих частин чисел, отриманих при множенні лише дробової частини, починаючи зверху після коми. При цьому задається точність виразів. Наприклад, число 0,41 10 у десятковій системі перетворюється на число 0,011 2 у двійковій системі числення:
За розглянутими правилами числа можна перекладати й інші широко поширені системи числення - восьмеричную, шістнадцяткову, двійково-десяткову. У всіх випадках множення або розподіл чисел, що перекладаються, проводиться на підставі нової системи числення.
Вправи
1. Перетворити на десятковий код такі двійкові числа:
а) 0001; б) 0101; в) 1000; г) 1011; д) 1111; е) 0111; ж) 10000000; з) 00010000; і) 00110011; к) 01100100; л) 00011111; м) 11111111.
2. Перетворити на двійковий код такі десяткові числа:
а) 23; б) 39; в) 55; г) 48.
3. Перетворити десяткове число у двійковий код: 204;
4. Перетворити двійкове число на десятковий код: 11101110.
В даний час у повсякденному житті для кодування числової інформації використовується десяткова система числення з підставою 10, в якій використовується 10 елементів позначення: числа 0, 1, 2, … 8, 9. У першому (молодшому) розряді вказується число одиниць, у другому - десятків, у третьому – сотень тощо; іншими словами, у кожному наступному розряді вага розрядного коефіцієнта збільшується у 10 разів.
У цифрових пристроях обробки інформації використовується двійкова система числення з основою 2, в якій використовуються два елементи позначення: 0 і 1. Ваги розрядів зліва направо від молодших до старших розрядів збільшуються в 2 рази, тобто мають таку послідовність: 8421. У загальному вигляді ця послідовність має вигляд:
…2 5 2 4 2 3 2 2 2 1 2 0 ,2 -1 2 -2 2 -3 …
і використовується для переведення двійкового числа до десяткового. Наприклад, двійкове число 101011 еквівалентно десятковому числу 43:
2 5 ·1+2 4 ·0+2 3 ·1+2 2 ·0+2 1 ·1+2 0 ·1=43
У цифрових пристроях використовуються спеціальні терміни позначення різних за обсягом одиниць інформації: біт, байт, кілобайт, мегабайт тощо.
Бітабо двійковий розрядвизначає значення одного будь-якого знака в двійковому числі. Наприклад, двійкове число 101 має три біти або три розряди. Крайній праворуч розряд, з найменшою вагою, називається молодшим,а крайній ліворуч, з найбільшою вагою, - старшим.
Байт визначає 8-розряднуодиницю інформацію, 1 байт = 23 біт, наприклад, 10110011 або 01010111 і т.д., 1 кбайт = 210 байт, 1 Мбайт = 2 10 кбайт = 2 20 байт.
Для представлення багаторозрядних чисел у двійковій системі числення потрібна велика кількість двійкових розрядів. Запис полегшується, якщо використовувати шістнадцяткову систему числення.
Підставою шістнадцятковій системичислення є число 16=2 4 , у якій використовується 16 елементів позначення: числа від 0 до 9 і літери A, B, C, D, E, F. Для переведення двійкового числа до шістнадцяткового досить двійкового числа розділити на чотирибітові групи: цілу частину справа наліво, дробову - зліва направо від коми. Останні групи можуть бути неповними.
Кожна двійкова група є відповідним шістнадцятковим символом (таблиця 1). Наприклад, двійкове число 0101110000111001 у шістнадцятковій системі виражається числом 5C39.
Користувачеві найзручніша десяткова система числення. Тому багато цифрових пристроїв, працюючи з двійковими числами, здійснюють прийом і видачу користувачеві десяткових чисел. У цьому застосовується двійково-десятковий код.
Двійково-десятковий кодутворюється заміною кожної десяткової цифри числа четирехразрядним двійковим поданням цієї цифри в двійковому коді (див. таблицю 1). Наприклад, число 15 представляється як 00010101 BCD (Binary Coded Decimal). При цьому в кожному байті розташовуються дві десяткові цифри. Зауважимо, що двійково-десятковий код при такому перетворенні не є двійковим числом, еквівалентним десятковому числу.
1.2 Логічні основи ЕОМ
Розділ математичної логіки, що вивчає зв'язки між логічними змінними, що мають лише два значення, називається алгеброю логіки.Алгебра логіки розроблена англійським математиком Дж. Булем і часто називається булевою алгеброю. Алгебра логіки є теоретичною базою для побудови систем цифрового оброблення інформації. Спочатку на основі законів алгебри логіки розробляється логічне рівняння пристрою, що дозволяє з'єднати логічні елементи таким чином, щоб схема виконувала задану логічну функцію.
Таблиця 1 – Коди чисел від 0 до 15
Десяткова кількість | Коди | ||
---|---|---|---|
Двійковий | 16-річний | Двійково-десятковий | |
0 | 0000 | 0 | 000 |
1 | 0001 | 1 | 0001 |
2 | 0010 | 2 | 0010 |
3 | 0011 | 3 | 0011 |
4 | 0100 | 4 | 0100 |
5 | 0101 | 5 | 0101 |
6 | 0110 | 6 | 0110 |
7 | 0111 | 7 | 0111 |
8 | 1000 | 8 | 1000 |
9 | 1001 | 9 | 1001 |
10 | 1010 | A | 00010000 |
11 | 1011 | B | 00010001 |
12 | 1100 | C | 00010010 |
13 | 1101 | D | 00010011 |
14 | 1110 | E | 00010100 |
15 | 1111 | F | 00010101 |
1.2.1 Основні положення логіки алгебри
Різні логічні змінні може бути пов'язані функціональними залежностями. p align="justify"> Функціональні залежності між логічними змінними можуть бути описані логічними формулами або таблицями істинності.
У загальному вигляді логічна формулафункції двох змінних записується як: y=f(X 1 , X 2), де X 1 , X 2 – вхідні змінні.
У таблиці істинностівідображаються всі можливі поєднання (комбінації) вхідних змінних та відповідні їм значення функції y, що виходять в результаті виконання будь-якої логічної операції. При одній змінній повний набір складається з чотирьох функцій, які наведені у таблиці 2.
Таблиця 2 – Повний набір функцій однієї змінної
X | Y1 | Y2 | Y3 | Y4 |
---|---|---|---|---|
0 | 1 | 0 | 1 | 0 |
1 | 0 | 1 | 1 | 0 |
Y1 – Інверсія, Y2 – Тотожна функція, Y3 – Абсолютно справжня функція та Y4 – Абсолютно помилкова функція.
Інверсія(Заперечення) є однією з основних логічних функцій, що використовуються в пристроях цифрової обробки інформації.
При двох змінних повний набір складається з 16 функцій, однак у цифрових пристроях використовуються далеко не всі.
Основними логічними функціями двох змінних, що використовуються в пристроях цифрової обробки інформації, є: диз'юнкція (логічне додавання), кон'юнкція (логічне множення), сума за модулем 2 (нерівнозначність), стрілка Пірса і штрих Шеффера. Умовні позначення логічних операцій, що реалізують зазначені вище логічні функції однієї та двох змінних, наведено у таблиці 3.
Таблиця 3 Назви та позначення логічних операцій
Операцію інверсії можна виконати суто арифметично: і алгебраїчно: З цих виразів випливає, що інверсія x, тобто. доповнює xдо 1. Звідси виникла ще одна назва цієї операції - доповнення. Звідси можна дійти невтішного висновку, що подвійна інверсія призводить до вихідному аргументу, тобто. і це називається законом подвійного заперечення.
Таблиця 4 - Таблиці істинності основних функцій двох змінних
Диз'юнкція | Кон'юнкція | Виключне АБО | Стрілка Пірсу | Штрих Шеффера | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
X1 | X2 | Y | X1 | X2 | Y | X1 | X2 | Y | X1 | X2 | Y | X1 | X2 | Y |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 |
Диз'юнкція.На відміну від звичайного арифметичного або алгебраїчного підсумовування, тут наявність двох одиниць дає в результаті одиницю. Тому за позначення логічного підсумовування перевагу слід віддати знаку (∨) замість знака (+) .
Перші два рядки таблиці істинності операції диз'юнкції ( x 1 = 0) визначають закон складання з нулем: x ∨ 0 = x, а другі два рядки (x 1 = 1) - закон складання з одиницею: x ∨ 1 = 1.
Кон'юнкція.Таблиця 4 переконливо показує тотожність операцій звичайного та логічного множень. Тому як знак логічного множення можливе використання звичного знака звичайного множення у вигляді точки.
Перші два рядки таблиці істинності операції кон'юнкції визначають закон множення на нуль: x· 0 = 0, а другі дві - закон множення на одиницю: x· 1 = x.
Виключає АБО.Під функцією "Виключає АБО" розуміють наступне: одиниця на виході з'являється тоді, коли тільки на одному вході є одиниця. Якщо одиниць на входах дві або більше або якщо на всіх входах нулі, то на виході буде нуль.
Напис на позначенні елемента ВИКЛЮЧНЕ АБО «=1» (Малюнок 1, г) якраз і означає, що виділяється ситуація, коли на входах одна і тільки одна одиниця.
Ця операція аналогічна операції арифметичного підсумовування, але, як і інші логічні операції, без утворення перенесення. Тому вона має іншу назву сума за модулем 2та позначення ⊕, подібне до позначення арифметичного підсумовування.
Стрілка Пірсуі штрих Шеффера.Ці операції є інверсіями операцій диз'юнкції та кон'юнкції та спеціального позначення не мають.
Розглянуті логічні функції є простими чи елементарними, оскільки значення їх істинності залежить від істинності інших функцій, а залежить лише від незалежних змінних, званих аргументами.
У цифрових обчислювальних пристроях використовують складні логічні функції, які розробляються на основі елементарних функцій.
Складнийє логічна функція, значення істинності якої від істинності інших функцій. Ці функції є аргументами цієї складної функції.
Наприклад, у складній логічній функції аргументами є X 1 ∨X 2 та .
1.2.2 Логічні елементи
Для реалізації логічних функцій у пристроях цифрового оброблення інформації використовуються логічні елементи. Умовні графічні позначення (УДО) логічних елементів, які реалізують розглянуті вище функції, наведено малюнку 1.
Малюнок 1 – УДО логічних елементів: а) Інвертор, б) АБО, в) І, г) Виключне АБО, д) АБО-НЕ, е) І-НЕ.
Складні логічні функції реалізуються з урахуванням простих логічних елементів, шляхом їхнього відповідного з'єднання реалізації конкретної аналітичної функції. Функціональна схема логічного пристрою, що реалізує складну функцію, , наведену у попередньому параграфі, наведено на малюнку 2.
Рисунок 2 – Приклад реалізації складної логічної функції
Як видно з малюнку 2, логічне рівняння показує, з яких ЛЕ та якими сполуками можна створити заданий логічний пристрій.
Оскільки логічне рівняння та функціональна схема мають однозначну відповідність, то доцільно спростити логічну функцію, використовуючи закони алгебри логіки і, отже, скоротити чи змінити номенклатуру ЛЕ під час її реалізації.
1.2.3 Закони та тотожності алгебри логіки
Математичний апарат алгебри логіки дозволяє перетворити логічний вираз, замінивши його рівносильним з метою спрощення, скорочення числа елементів чи заміни елементної бази.
1 Переміщувальний: X ∨ Y = Y ∨ X; X · Y = Y · X.
2 Позначальний: X ∨ Y ∨ Z = (X ∨ Y) ∨ Z = X ∨(Y ∨ Z); X · Y · Z = (X · Y) · Z = X · (Y · Z).
3 Ідемопотентності: X ∨ X = X; X · X = X.
4 Розподільний: (X ∨ Y) · Z = X · Z ∨ Y · Z.
5 Подвійне заперечення: .
6 Закон двоїстості (Правило де Моргана):
Для перетворення структурних формул застосовується ряд тотожностей:
X ∨ X · Y = X; X(X ∨ Y) = X - Правила поглинання.
X · Y ∨ X · = X, (X ∨ Y) · (X ∨ ) = X - Правила склеювання.
Правила старшинства логічних операцій.1 Заперечення - логічна дія першого ступеня.
2 Кон'юнкція - логічна дія другого ступеня.
3 Диз'юнкція - логічна дія третього ступеня.
Якщо в логічному вираженні зустрічаються дії різних щаблів, то спочатку виконуються першого ступеня, потім другого і тільки після цього третього ступеня. Будь-яке відхилення від цього порядку має бути позначене дужками.
2.1 Арифметичні та логічні основи ЕОМ
2.1.1 Подання даних у ЕОМ
Для оцінки кількості інформації та впорядкування процесу її обробки використовуються структурні одиниці інформації.
За одиницю інформації приймається один біт.
Біт визначає кількість інформації, за допомогою якої виділяється один із двох альтернативних станів. В одному біті за допомогою цифр 0 і 1 може бути представлений один двійковий розряд числа або одна логічна змінна, що приймає відповідно значення "брехня" або "істина".
Послідовність бітів, має певний сенс, називається полем.
Поле завдовжки 8 біт називається байтом.
Байт, зазвичай, є мінімальною (неподільною) одиницею інформації, з якою оперує ЕОМ. Решта одиниць інформації є його похідними (рис. 2.1).
Мал. 2.1. Структурні одиниці інформації
Основний структурної одиницею інформації, оброблюваної ЕОМ, є машинне слово.
У сучасних ЕОМ довжина машинного слова зазвичай становить два байти. Як правило, в одному машинному слові може бути або одне число, або одна команда. Для забезпечення необхідної точності обчислень та економії пам'яті більшість ЕОМ можуть оперувати також із подвійним словом.
Послідовність полів, байтів чи слів, мають однаковий зміст, утворюють масив.
Група масивів може поєднуватися в сегмент. Кількість інформації у великих масивах оцінюється за допомогою похідних одиниць, кратних кількості байтів у ступеня числа два (1кбайт = 1024 байт = 210 байт; 1Мбайт = 1048576 байт = 2 20 байт).
Обчислювальна машина оперує з двома видами інформації: керуючою інформацією та числовими даними.
Для представлення числових даних у ЕОМ використовуються природна та нормальна форми запису чисел.
У обчислювальної техніки прийнято відокремлювати цілу частину від дробової точкою. Так як у цьому випадку положення точки між цілою та дробовою частинами чітко визначено, то таке уявлення чисел називають поданням з фіксованою точкою (рис. 2.2).
Мал. 2.2. Подання чисел із фіксованою точкою
Недоліком представлення чисел з фіксованою точкою є їхній малий діапазон. Тому, зазвичай, у такій формі записують лише цілі числа. В цьому випадку відпадає необхідність відводити поле для дробової частини числа.
Максимальним за абсолютним значенням цілим числом, що подається в природній формі, буде число, яке визначається за формулою (2 m – 1) (рис. 2.3).
Нормальна форма запису числа має вигляд N = m × q p , де m - мантиса числа (m<1); p - порядок; q - основание системы счисления.
Порядок вказує місце розташування серед точки, що відокремлює цілу частину числа від дробової.
Мал. 2.3. Подання цілих чисел
Така форма уявлення чисел називається формою з плаваючою точкою. У цьому випадку машинне слово поділяється на два основні поля. У одному полі записується мантиса числа, на другому вказується порядок числа з урахуванням знака порядку (характеристика числа). Один розряд приділяється для представлення знака числа. Розподіл розрядів у чотирибайтовому слові випадку з плаваючою точкою наведено малюнку 2.4.
Діапазон представлення чисел з плаваючою точкою значно більший за діапазон представлення чисел з фіксованою точкою. Однак швидкодія ЕОМ при обробці чисел з плаваючою точкою набагато нижче, ніж при обробці чисел з фіксованою точкою. Це тим, що з роботі з плаваючою точкою кожної операції потрібен час визначення місця розташування точки.
Мал. 2.4. Подання чисел з плаваючою точкою
У сучасних ЕОМ застосовуються обидві форми уявлення чисел.
2.1.1.1 Подання команд до ЕОМ
Програма роботи машини, що визначає процес обробки інформації в ЕОМ, складається з послідовності команд.
Під командою ЕОМ розуміється інформація, що забезпечує вироблення управляючих сигналів до виконання машиною певного впливу.
Поле команди складається з двох частин: операційної та адресної. В операційній частині вказується код операції (КОП), що визначає дію (арифметичну чи логічну), яку має виконати машина. Адреса команди містить адреси операндів (величин), що беруть участь в операції. Під адресою "А" розуміється номер (цифровий код) машинного слова (або іншого поля пам'яті ЕОМ), де записана необхідна для виконання команди інформація. Кількість адрес, що вказуються в команді, може бути різною. Відповідно до числа адрес визначаються такі формати команд: одноадресні, двоадресні, триадресні та чотириходові (рис. 2.5).
Мал. 2.5. Формати команд ЕОМ
Трехадресна команда, яка виконує, наприклад, операцію додавання, повинна містити код операції додавання і три адреси. Дії, що виконуються такою командою, визначаються приблизно такою послідовністю:
1) взяти число, що зберігається за першою адресою;
2) взяти число, що зберігається на другій адресі, і скласти його з першим числом;
3) результат додавання записати за третьою адресою.
У випадку двоадресної команди третя адреса відсутня, і результат можна записати або за другою адресою (із втратою інформації, яка там була записана), або залишити в суматорі, де проводилася операція додавання. Тоді для звільнення суматора потрібна додаткова команда перезапису числа на потрібну адресу. При додаванні двох чисел, що зберігаються за адресами A1 і A2, із записом результату, наприклад, в A1 з використанням двоадресної команди, потрібно вже чотири команди:
1) виклик до суматора числа, що зберігається за адресою A1;
2) виклик числа, що зберігається за адресою A2, та складання його з першим числом;
3) стерти число за адресою A1;
4) запис результату на адресу A1.
Таким чином, чим менше адресність команд ЕОМ, тим більше команд потрібне для складання однієї й тієї ж програми роботи машини.
Збільшуючи адресність ЕОМ, доводиться збільшувати довжину машинного слова, щоб відвести у ньому необхідні поля адресної частини команд. Зі збільшенням обсягу пам'яті ЕОМ збільшується довжина поля, необхідного однієї адреси. В той же час не всі команди повністю використовують адресні поля. Наприклад, для команди запису числа за заданою адресою потрібне лише одне адресне поле.
2.1.2 Системи числення
Спосіб подання чисел у вигляді числових знаків (цифр) називається системою числення. Правила запису та дій над числами у системах числення, що використовуються у цифровій обчислювальній техніці, визначають арифметичні основи цифрових ЕОМ.
Компоненти системи числення:
1. Основа системи числення - кількість різних цифр (символів), що використовуються для представлення числа.
2. Алфавіт системи числення - символи та цифри, що використовуються для написання всіх розрядів числа.
3. Правила запису та читання чисел.
Розрізняють два основні види систем числення: непозиційні та позиційні.
Непозиційні системи числення.
Непозиційні системи числення характеризуються тим, що значення числа, що виражається сукупністю цифр, визначається лише конфігурацією цифрових символів і залежить від місця становища. Класичним прикладом непозиційної системи є римська система числення. Наприклад: ХІХ; XXIII.
Позиційні системи числення.
Найбільшого поширення набули позиційні системи числення, у яких значення будь-якої цифри визначається як конфігурацією її символу, а й місцезнаходженням (позицією), що вона займає в числе.
Серед позиційних систем розрізняють однорідні та змішані (неоднорідні) системи числення.
У однорідних системах кількість допустимих цифр всім позицій (розрядів) числа однаково. p align="justify"> Однорідною позиційною системою є загальноприйнята десяткова система числення (q = 10), що використовує для запису чисел десять цифр від 0 до 9.
Прикладом змішаної системи числення може бути система відліку часу, де у розрядах секунд і хвилин використовується по 60 градацій, а розрядах годин - 24 градації тощо.
Будь-яке число A, записане в однорідній позиційній системі, може бути представлене у вигляді суми статечного ряду:
(2.1.)
де q - основа системи числення; a i - цифри системи числення з основою q; i – номер (вага) позиції (розряду) числа.
Може бути реалізована безліч різних систем числення. У цифрових обчислювальних машинах переважно використовуються однорідні позиційні системи. Крім десяткової системи числення в ЕОМ знаходять широке застосування системи з основою q, що є ступенем числа 2, а саме двійкова, вісімкова, шістнадцяткова системи числення.
При спільному використанні різних систем числення після запису числа може вказуватися основа системи, наприклад: 347,42 10; 1101 2; 235 8 і т.д.
Електронні обчислювальні машини виконують арифметичні та логічні операції, при цьому використовуються два класи змінних: числа та логічні змінні.
Числанесуть інформацію про кількісні характеристики системи; з них виробляються арифметичні дії.
Логічні зміннівизначають стан системи чи належність її до певного класу станів (комутація каналів, управління роботою ЕОМ за програмою тощо).
Логічні змінні можуть приймати лише два значення: істинаі брехня.У пристроях цифрової обробки інформації цим двом значенням змінних ставиться у відповідність два рівні напруги: високий (логічна «1») та низький -- (логічний 0»).Однак у ці значення не вкладається значення кількості.
Елементи, які здійснюють найпростіші операції над такими двійковими сигналами, називають логічними. На основі логічних елементів розробляються пристрої, що виконують і арифметичні, і логічні операції.
В даний час логічні елементи (ЛЕ) виконуються за допомогою різних технологій, які визначають чисельні значення основних параметрів ЛЕ і як наслідок, якісні показники цифрових пристроїв обробки інформації, розроблених на їх основі. Тому в даному посібнику схемотехніці та параметрам ЛЕ різних технологій приділено належну увагу.
1 Арифметичні та логічні основи ЕОМ
1.1 Арифметичні основи ЕОМ
Нині у повсякденному житті для кодування числової інформації використовується десяткова система числення з основою 10, у якій використовується 10 елементів позначення: числа 0,1,2,…8,9.
У першому (молодшому) розряді вказується число одиниць, у другому – десятків, у третьому – сотень тощо; іншими словами, у кожному наступному розряді вага розрядного коефіцієнта збільшується у 10 разів.
У цифрових пристроях обробки інформації використовується двійкова система числення з основою 2, в якій використовуються два елементи позначення: 0 і 1. Ваги розрядів зліва направо від молодших до старших розрядів збільшуються в 2 рази, тобто мають таку послідовність: 8421. У загальному вигляді ця послідовність має вигляд:
і використовується для переведення двійкового числа до десяткового. Наприклад, двійкове число 101011 еквівалентно десятковому числу 43:
БітУ цифрових пристроях використовуються спеціальні терміни позначення різних за обсягом одиниць інформації: біт, байт, кілобайт, мегабайт тощо. абовизначає значення одного будь-якого знака в двійковому числі. Наприклад, двійкове число 101 має три біти або три розряди. Крайній праворуч розряд, з найменшою вагою, називається молодшим,а крайній ліворуч, з найбільшою вагою, – старшим.
Байт визначає 8-розряднуодиницю інформацію, 1байт=2 3 біт, наприклад, 10110011 або 01010111 і т. д.
,
Для представлення багаторозрядних чисел у двійковій системі числення потрібна велика кількість двійкових розрядів. Запис полегшується, якщо використовувати шістнадцяткову систему числення.
Підставою шістнадцятковій системичислення є число 16 = , В якій використовується 16 елементів позначення: числа від 0 до 9 і літери А, B, C, D, E, F.
Для переведення двійкового числа в шістнадцяткове досить двійкове число розділити на чотирьох - бітові групи: цілу частину справа наліво, дробову - зліва направо від коми. Останні групи можуть бути неповними.
Кожна двійкова група є відповідним шістнадцятковим символом (таблиця 1). Наприклад, двійкове число 0101110000111001 у шістнадцятковій системі виражається числом 5С39.
Користувачеві найзручніша десяткова система числення. Тому багато цифрових пристроїв, працюючи з двійковими числами, здійснюють прийом і видачу користувачеві десяткових чисел. У цьому застосовується двійково – десятковий код.Двійково – десятковий код