Арифметичні основи ЕОМ 1

1.1.1 Позиційні системи числення

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

У загальному випадку n- розрядний позитивне число N в довільній системі счіс-лення з підставою р представляється сумою виду

де аk - окремі цифри в запису числа, значення яких дорівнюють членам натурал-ного ряду в діапазоні від 0 до (р - 1).

Двійкова система числення. При виконанні обчислень цифровими електрон-ними пристроями використовуються елементи з двома стійкими станами. Поетів-тому в цифровій техніці широке поширення набула позиційна двійкова система числення (з основою 2). У кожному довічним розряді, що отримав назва-ня біт. може стояти 1 або 0. Сама ж запис числа (двійковий код) являє собою послідовність з одиниць і нулів. Щоб відрізнити двійковечисло від десяткового, будемо доповнювати його справа суфіксом В (Binary), як це прийнято в машинно-орієнтованих мовах програмування, званих асемблер.

Ваги сусідніх розрядів двійкового коду числа відрізняються в два рази, а самий правий розряд (молодший) має вагу 1. Тому, наприклад

101101В = 1 × 2 5 + 0 × 2 4 + 1 × 2 3 +1 × 2 2 + 0 × 2 1 + 1 × 2 0 = 32+ 0 + 8 + 4 + 0 + 1 = 45.

Чотири сусідніх біта називають тетрадой. групу з 8 біт називають байтом. а з 16 біт - машинним словом. Сукупність з 1024 (210) байтів називають кілобайт, з 1024 кілобайт - мегабайтом, з 1024 мегабайтів - гігабайтом.

1 Гб = 2 10 Мб = 2 20 Кб = 2 30 байт.

Двійковій-десяткова система числення. Арифметичні операції в двійковій системі числення виключно прості і легко реалізуються апаратно. Однак при введенні і виведенні інформації в цифровий пристрій вона повинна бути представле-на в більш звичній для людини десятковій системі числення.

Прагнення спростити процедуру перерахунку двійкових чисел до десяткового еквіваленту і призвело до використання двійковій-десяткового системи числення (BD - Binary Decimals). Вона використовується в ЕОМ не тільки в якості допоміжної системи числення при введенні і виведенні даних, але і в якості основної при вирішенні завдань, коли в ЕОМ вводиться і виводиться велика кількість чисел, а обчислень над ними проводиться мало.

Десяткові числа в двійковій-десяткового системі числення кодуються в прямому нормально-зваженому коді 8-4-2-1, т. Е. Кожну цифру десяткового числа необхід-мо замінити відповідною тетрадой двійкових чисел. Наприклад, десяткове число 9531 в двійковій-десятковому коді представляється машинним словом з чотирьох тетрад

9531 = 1001 0101 0011 0001.

Шістнадцяткова система числення. Записувати двійкові числа великої розрядності втомлює. Тому, як правило, вони представляються більш компакт-ними записами з використанням шестнадцатерічнойсістеми числення. У цій сис-темі використовують десять членів натурального ряду від 0 до 9, а в якості інших цифр - перші шість латинських букв A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Справа шістнадцяткове число будемо доповнювати суфіксом Н (Hexadecimal).

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

N = 8B5FH = 1000 1011 0101 1111 B.

Таблиця 1.1 - Відповідність чисел різних систем числення

Десяткове число (D)

1.1.2 Переклад цілих чисел з однієї системи числення в іншу

Для перекладу з десяткової системи в будь-яку іншу позиційну систему числення проводиться методом послідовного розподілу на підставу такої

системи до тих пір, поки частка від ділення не може бути менше підстави системи.

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

Приклад 1.1. Перевести десяткове число 15710 в двійковий код, результат перевірити.

число 157: 2 = 78; 78: 2 = 39; 39: 2 = 19; 19: 2 = 9; 9: 2 = 4; 4: 2 = 2; 2: 2 = 1.

залишок 1 0 1 1 1 0 0

молодший 1 - старший

Перевірка: 100111012 = 1 × 2 7 +0 × 2 6 + 0 × 2 5 + 1 × 2 4 + 1 × 2 3 +1 × 2 2 + 0 × 2 1 + 1 × 2 0 =

= 128 + 0 + 0 + 16 + 8 + 4 + 0 + 1 = 15710.

Приклад 1.2. Перевести десяткове число 54410 в двійковий код.

число 544: 2 = 272; 272: 2 = 136; 136: 2 = 78; 78: 2 = 39; 39: 2 = 19; 19: 2 = 9; 9: 2 = 4; 4: 2 = 2; 2: 2 = 1

залишок 0 0 0 0 1 1 1 0 0

молодший 1 - старший

Для полегшення роботи з двійковими кодами бажано знати напам'ять десяткові значення чисел 2 n від n = 0 до n = 12 (таблиця 1.2).

Таблиця 1.2 - Десяткові значення чисел 2 n

Відповідь: 157 = 2358

Перевірка: 2358 = 2 × 8 2 + 3 × 8 1 +5 × 8 0 = 128 + 24 + 5 = 15710.

Для перекладу двійкового числа в вісімкову систему числення воно ділиться на тріади справа наліво і кожна тріада замінюється вісімковий числом:

1.1.3 Представлення від'ємних чисел двійковим кодом

За допомогою байта даних можна уявити різну інформацію:

- ціле число без знака (від 0 до 255);

- число від 0 до 99 в двійковій-десятковому коді;

- машинний код команд мікропроцесора;

- стан восьми датчиків;

- двійкове число зі знаком в прямому, зворотному або додатковому коді ± Х. де Х - модуль числа (від 0 до 127).

Для відображення модуля числа використовується сім молодших розрядів, а для відображення знака - старший розряд (0 - для позитивних чисел, 1 - для негативних).

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

Додатковий код однобайтового числа мінус Х дорівнює доповнення до 256, т. Е. Двійкового коду числа 256 - X. Перетворення додаткового коду числа в прямий код здійснюється за тим же правилом, що прямого в додатковий.

Приклад 1.5. Записати додатковий код однобайтового числа мінус 10010 = 01100100. Для відображення знака використовується старший розряд числа.

Запишемо двійкового коду числа плюс 100: 01100100

Проінвертіруем його: 10011011 Додамо одиницю: 10011100

Відповідь: додатковий код числа мінус 10010 дорівнює 100111002.

1.1.4 Переклад десяткового дробового числа в двійкову систему

Переклад десяткового дробового числа в десяткову систему проводиться в два етапи. Спочатку перекладається ціла частина числа, а потім - дрібна.

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

Приклад 1.6. Перевести число 187,5610 у двійкову систему з точністю до шостого цифри після коми.

Переклад цілої частини.

число 187: 2 = 93; 93: 2 = 46; 46: 2 = 23; 23: 2 = 11; 11: 2 = 5; 5: 2 = 2; 2: 2 = 1;

залишок 1 1 0 1 1 1 0

молодший 1 - старший

Переклад дробової частини.

1.1.5 Форми представлення чисел

Числа в цифрових пристроях ЦУ можу представлятися у формі цілих чисел, чисел з фіксованою комою і чисел з плаваючою комою.

Цілі числа при вирішенні задач зустрічаються у випадках подання індексів змінних, підрахунку числа повторення будь-яких дій і т. Д. Для зберігання таких чисел в осередках пам'яті застосовується розрядна сітка, наведена на малюнку 1.1, а. Старший розряд - знаковий, при цьому знак «+» позначають цифрою «0», а знак «-» - цифрою «1». Молодші розряди сітки займають цифри модуля числа, вільні старші розряди заповнюються нулями. Наприклад, негативне число -1310 = -11012 в Восьмирозрядних сітці буде записано так, як це показано на малюнку 1.1, б.

Якщо кількість значущих розрядів модуля числа превишаетn-1, то відбувається втрата старших розрядів модуля, що називається переповненням розрядної сітки і призводить до помилок представлення чисел. Діапазон чисел такої сітки становить

0 ... 2 n -1 - 1. В десятковій системі числення при 16-ти розрядах діапазон чисел складе 0 ... 32 × 1024-1 ≈ 0 ... 32 × 10 3. а при 32-х розрядах - ≈ 2 × 10 9.

Арифметичні основи ЕОМ 1

Малюнок 1.1 - Разрядная сітка цілого числа

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

Малюнок 1.2 - Разрядная сітка числа з фіксованою комою

При занесенні числа в комірку пам'яті вільні молодші разрядизаполняются нулями. Якщо число значущих розрядів модуля числа перевищує число розрядів сітки, то молодші розряди губляться. Це призводить до похибки обчислень # 941; АБС. меншою одиниці молодшого розряду (при 16 розрядах # 941; АБС <1/32×10 -3. при 32 разрядах <5×10 -10. Если число имеет целую часть, то для неё в разрядной сетке места нет и она теряется.

Переваги форми. простота виконання арифметичних операцій.

Недоліки: 1) необхідність вибору масштабних коефіцієнтів 2) низька точність представлення чисел з малими значеннями модуля, 3) втрата цілої частини. Числа з плаваючою комою дозволяють представляти числа у широкому діапазоні значень і з високою точністю. Число складається з мантиси, старший розряд якої визначає знак числа, і порядку зі знаком (рисунок 1.3).

Малюнок 1.3 - Разрядная сітка числа з плаваючою комою

Модуль мантиси представляється двійковим дробовим числом (тобто кома ставиться перед старшим розрядом модуля мантиси М), порядок П представляється цілим числом і показує дійсний стан коми в числі. Точність уявлення залежить кількості цифр мантиси. Для підвищення точності мантиссу нормалізують. тобто забезпечують 0,5 ≤ | М | <1. Признак нормализации: наличие «1» в старшем разряде модуля мантиссы.

1. Широкий діапазон представлення чисел. При шести розрядах порядку діапазон чисел становить від 10 19 до 10 -19.

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

1.1.6 Виконання арифметичних операцій в різних системах числення

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

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

Додавання позитивних чисел.

Перший доданок N1 001101

Другий доданок N2 001101

Сума N1 + N2 011010

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