Відповідність чисел у різних системах числення
Для перекладу цілого двійкового числа та восьмеричне необхідно розбити його праворуч наліво на групи по 3 цифри (двійкові тріади). Ліва група може містити менше трьох двійкових цифр. Потім кожній групі поставити у відповідність її вісімковий еквівалент. Наприклад:
Переведення цілого двійкового числа в шістнадцяткове проводиться аналогічно шляхом розбиття цього числа на групи по чотири цифри (двійкові зошити):
Для переведення дробових частин двійкових чисел у вісімкову або шістнадцяткову системи аналогічне розбиття на тріади або зошити провадиться від точки вправо (з доповненням останніх цифр, що відсутні, нулями):
Переведення вісімкових (шістнадцяткових) чисел у двійкові здійснюється зворотним шляхом – зіставленням кожному знаку числа відповідної трійки (четвірки) двійкових цифр.
Переведення вісімкових у шістнадцяткові числа і навпаки проводиться з використанням двійкової або десяткової системи як проміжну.
1.4.3. Арифметичні операції над двійковими числами
Над числами, записаними в будь-якій системі числення, можна проводити різні арифметичні операції. Так, для складання та множення двійкових чисел необхідно використовувати такі таблиці:
Таблиці складання та множення у двійковій системі
Зауважимо, що при двійковому додаванні 1 + 1 виникає перенесення одиниці у старший розряд – точнісінько як у десятковій арифметиці:
=1100 1001
+ 1001
Запитання для самоконтролю
Що розуміється під системою числення?
Які системи числення ви знаєте?
У чому відмінність позиційної системи числення від непозиційної?
Які системи числення використовуються у обчислювальній техніці, та в чому полягає перевага їх використання?
Що називається основою системи числення?
Які способи переведення чисел з однієї системи числення до іншої?
Як виглядають таблиці складання та множення у двійковій системі числення?
лекція 1.5. Одиниці подання, вимірювання та зберігання даних
1.5.1. Подання чисел у двійковому коді
Числа можуть бути цілі точні, дробові точні, раціональні, ірраціональні, наближені дробові, позитивні і негативні. Числа можуть бути "карликами" (наприклад, маса атома), "гігантами" (наприклад, маса землі), реальними (наприклад, кількість студентів у групі, зростання, вік). І кожне з чисел вимагатиме для оптимального представлення у пам'яті свою кількість байтів.
Єдиного оптимального уявлення для дійсних чисел створити неможливо. Тому безліч чисел розділили на типи (наприклад, цілі в діапазоні від … до …, наближені з плаваючою точкою з кількістю значущих цифр … і т.д.). Для кожного окремо типу створюється власний спосіб уявлення.
Цілі числа. Цілі позитивні числа від 0 до 255 можна уявити у двійковій системі числення (двійковому коді). Такі числа займатимуть один байт у пам'яті комп'ютера.
У такій формі вистави на комп'ютері легко реалізується двійкова арифметика. Знак числа "плюс" або "мінус" кодується окремим бітом. Зазвичай, це старший біт. Нуль інтерпретується, як «плюс», одиниця – як «мінус». Таким чином, одним байтом можуть бути закодовані цілі числа в інтервалі від -128 до +127. Двійкова арифметика у своїй буде дещо ускладнена, т.к. у цьому випадку існують два коди, що зображують число нуль 00000000 та 100000000. У комп'ютері на апаратному рівні це необхідно передбачити. Даний спосіб подання цілихчисел називаєтьсяпрямим кодом. З негативними числами дещо простіше, якщо використати додатковий код. У додатковому коді позитивні числа збігаються з позитивними числами в прямому коді, негативні числа виходять в результаті віднімання з 100000000 відповідного числа. Наприклад, число –3 отримає код:
11111101
У додатковому коді добре реалізується арифметика. Кожен наступний код виходить із попереднього додаванням одиниці з точністю до біта в дев'ятому розряді. Наприклад, 5 – 3 = 5 + (-3)
100000010
Відкидаючи підкреслений старший розряд, матимемо 2.
Аналогічно цілі числа від 0 до 65536 і цілі числа від -32768 до 32767 у двійковій (шістнадцятковій) системі числення подаються у двобайтових осередках. Існують уявлення цілих чисел і чотирибайтових осередках.
Дійсні числа. Справжні числа в математиці видаються кінцевими чи нескінченними дробами, тобто. точність уявлення чисел не обмежена. Однак, в комп'ютері числа зберігаються в регістрах і осередках пам'яті, які є послідовністю байтів з обмеженою кількістю розрядів. Отже, нескінченні чи дуже довгі числа усікаються до деякої довжини й у комп'ютерному уявленні виступають наближені. У більшості систем програмування ціла та дробова частини у написанні дійсних чисел поділяються не комою, а точкою.
Для представлення дійсних чисел як дуже маленьких, так і дуже великих, зручно використовувати форму запису чисел у вигляді твору:
Де m-основа системи числення;
P - ціле число, зване порядком.
Такий спосіб запису чисел називається уявленням числа з плаваючою точкою.
Тобто.число 1234,56 може бути записано:
1234,56 = 123,456 * 10 1 = 12,3456 * 10 2 = 1,23456 * 10 3 = 0,123456 * 10 4 .
Така вистава не однозначна. Якщо мантиса


Дійсні числа в комп'ютерах різних типів записуються по-різному, але є кілька стандартних міжнародних форматів, які різняться точності, але мають однакову структуру. Розглянемо з прикладу 4 байтного числа.
Перший розряд уявлення використовується для запису мантиси знака. За ним – група розрядів, визначальних порядок, інші розряди визначають абсолютну величину мантиси. Розміри обох груп розрядів фіксуються. Т.к. Порядок може бути позитивним або негативним, потрібно вирішити проблему його знака. Розмір порядку представляється з надлишком, тобто, замість справжнього значення порядку зберігається число, званехарактеристикою(абозміщеним порядком). Для отримання характеристики треба до порядку додати усунення. Наприклад, при використанні для зберігання порядку восьми біт і значень від -128 до +127 використовується зсув 128. Тоді для представлення порядку використовуватимуться значення від 0 до 255, тобто. лише невід'ємні числа.
Т.к. мантиса нормалізованого числа завжди дорівнює 1, деякі схеми подання її лише мають на увазі, використовуючи зайвий розряд підвищення точності подання мантиси.
Використання зміщеної форми дозволяє проводитиоперації над порядками, як над без знаковими числами, що спрощує операції порівняння, додавання та віднімання порядків. А також полегшує операцію порівняння самих нормалізованих чисел. Що більше розрядів відводиться під запис мантиси, то вище точність уявлення числа. Чим більше розрядів займає порядок, тим ширше діапазон від найменшого, відмінного від нуля числа до найбільшого числа, що у комп'ютері при заданому форматі.
Як і у випадку цілих чисел, у програмних системах можуть використовуватися кілька типів даних, що реалізують модель з плаваючою точкою. Наприклад, у мові СІ застосовуються три типи даних із різною «довжиною». Шістнадцятирозрядні компілятори для IBM-сумісних ПК реалізують ці типи таким чином:
Float - 4 байти, з них 23 розряду мантиси і 8 бітів порядку
(від 3,4 * 10 -38 до 3,4 * 10 38 забезпечує точність з 7 значущими цифрами);
Double - 8 байтів, з них 52 розряду мантиси і 11 бітів порядку
(від 1,7 * 10 -308 до 1,7 * 10 308 забезпечує точність з 15 знаками);
Longdouble - 10 байтів, з них 65 розрядів мантиси і 14 бітів порядку
(Від 3,4 * 10 -4932 забезпечує точність з 19 знаками).
Для представлення основних видів інформації (числа цілі, числа з плаваючою точкою, символи, звук тощо) у системах програмування використовують типи даних. Кожен тип даних визначає логічну структуру подання та інтерпретації для відповідних даних.