Подання чисел в двійковому коді

Цілі позитивні числа від 0 до 255 можна уявити безпосередньо в двійковій системі числення (двійковому коді). Такі числа будуть займати один байт в пам'яті комп'ютера.

Подання чисел в двійковому коді

У такій формі уявлення легко реалізується на комп'ютерах двійкова арифметика.

Якщо потрібні і негативні числа, то знак числа може бути закодований окремим бітом, зазвичай це старший біт; нуль інтерпретується як плюс, одиниця як мінус. В такому випадку одним байтом може бути закодовані цілі числа в інтервалі від -127 до +127. Розглянутий спосіб представлення цілих чисел називається прямим кодом. Положення з негативними числами дещо спрощується, якщо використовувати, так званий, додатковий код. У додатковому коді позитивні числа збігаються з позитивними числами в прямому коді, негативні ж числа виходять в результаті інверсії всіх бітів числа і додаванні одиниці до молодшого лівому розряду. Наприклад, число отримає код

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

Відкидаючи підкреслений старший розряд, отримаємо

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

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

де - мантиса числа;

- підставу системи числення;

- ціле число, зване порядком.

Такий спосіб запису чисел називається поданням числа з плаваючою комою. Число 4235,25 може бути записано в одному з видів:

Якщо мантиса для десяткової системи числення

то уявлення числа стає однозначним, а така форма називається нормалізованої. Якщо «плаваюча» точка розташована в мантисі перед першою значущою цифрою, то при фіксованій кількості розрядів, відведених під мантиссу, забезпечується запис максимальної кількості значущих цифр числа, тобто максимальна точність.

Дійсні числа в ЕОМ різних типів записуються по-різному, проте існує кілька міжнародних стандартних форматів, що розрізняються по точності, але мають однакову структуру. Розглянемо на прикладі числа, що займає 4 байта.

Подання чисел в двійковому коді

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

Порядок числа - цілі числа, можуть бути як позитивними, так і негативними. Щоб відобразити в двійковій формі, величина порядку представляється у вигляді суми істинного порядку і константи, рівній абсолютній величині максимального по модулю негативного порядку, званої зміщенням. Наприклад, якщо порядок може приймати значення від -128 до 127 (8 біт), тоді, вибравши в якості зсуву 128, можна уявити діапазон значень порядку від 0 (-128 + 128, порядок + зсув) до 255 (127 + 128).

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

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

Речові числа в пам'яті комп'ютера, в залежності від необхідної точності (кількості розрядів мантиси) і діапазону значень (кількості розрядів порядку), займають від чотирьох до десяти байтів. Наприклад, чотирьохбайтове дійсне число має 23 розряду мантиси (що відповідає точності числа 7-8 десяткових знаків) і 8 розрядів порядку (що забезпечують діапазон значень 10 ± 38). Якщо дійсне число займає десять байтів, то мантисі відводиться 65 розрядів, а порядку - 14 розрядів. Це забезпечує точність 19-20 десяткових знаків мантиси і діапазон значень 10 ± 4931.

Число подвійної точності (для 32-розрядної ЕОМ - 64 біта або 8 байт)

Поняття типу даних