Числова система ЕОМ

Введемо основні поняття на прикладі 4-бітових машинних слів. Такий розмір слова забезпечує зберігання десяткових чисел тільки від 0 до 15 і тому не представляє практичного значення. Однак вони менш громіздкі, а основні закономірності, обна Ружені на прикладі 4-бітових слів, зберігають силу для машин ного слова будь-якого розміру.

Припустимо, що процесор ЕОМ здатний збільшувати (додавати 1) і доповнювати (інвертувати) 4-бітові слова. Наприклад, результатом збільшення слова 1100 є 1101, а ре зультатом доповнення цього слова є ООП. Розглянемо слово 0000 представляє десяткове число 0. У результаті збільшення вміст цього слова стане рівним 0001 що відповідає десятковому числу 1. Продовжуючи послідовно збільшувати 4-бітові слова, прийдемо до ситуації, коли, збільшуючи слово 1111 (яке представляє десяткове число 15), отримаємо в результаті слово 0000 т. е. 111 + 1 = 0000 (15 + 1 = 0), при цьому отримали невірну арифметичну операцію і повернулися в початковий стан. Це сталося через те, що слово пам'яті може складатися тільки з кінцевого числа бітів. Таким чином, числова система ЕОМ є кінцевою і циклової.

Такої ситуації, що призводить до невірного арифметичному результату, можна уникнути, якщо бітову конфігурацію 1111 прийняти за код для-1. Тоді 1110 інтерпретується як-2; 1101-3 і т.д. до 1000-8. Тим самим отримали іншу числову систему - зі знаком, що містить як позитивні, так і негативні числа. У цій системі половина четирехбітових конфігурацій, що починається з одиниці, інтерпретується як негативні числа, а інша половина, що починається з 0, - як позитивні числа або нуль. Тому старший біт числа (третій за рахунком, якщо нумерацію бітів починати з нуля справа наліво) називається

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

Якщо знаковий біт дорівнює нулю, то значення числа легко обчислюється - ігнорується знаковий біт, а решту три біта інтерпретуються як двійковий код десяткового числа. Наприклад, слово 0110 представляє двійкове число 110, що дорівнює десятич ному числу 6.

Для оцінки негативного числа потрібно змінити його знак. Розглянемо четирехбітовое число k в системі зі знаком. Тоді - k = = (-1 - k) + 1, отже, для обчислення значення - К не обхідно відняти k з -1 (тобто з 1111) і потім додати 1 (тобто 0001). Зауважимо, що операція віднімання завжди можлива, ніколи не вимагає позики і рівнозначна операції інвертування бітів від'ємника. Наприклад, 1111 - 1011 = 0100, тут в віднімається, рівному ЮН, одиниці перейшли в нулі, а нуль - в одиницю. Інвертування бітів в слові називається доповненням до одиниці. Для визначення від'ємного значення числа -k треба до його до виконанню до одиниці додати одиницю (згідно вишепрі ведення рівності). Інвертування бітів в слові з додаванням одиниці до молодшого біту називається доповненням до двох. Нап ример, потрібно визначити, яке число закодовано в слові 1001. Для цього спочатку виконуємо операцію инвертирования 1001 -> ВОНО, а потім до отриманого результату додаємо одиницю 0110 + 1 = 0111, що є двійковим кодом числа 7. Таким чином, значенням 1001 є негативне 7, тобто -7.

Схожі статті