Формати подання чисел в комп’ютері

Для зберігання чисел в пам'яті комп'ютера використовується два формати: цілочисельний (природна форма) і з плаваючою точкою (нормалізована форма) (точка - розділовий знак для цілої і дробової частини числа).

Цілочисельний формат (формат з фіксованою точкою) використовується для подання в комп'ютері цілих (англ. Integer) позитивних і негативних чисел. Для цього, як правило, використовуються формати, кратні байту: \ (1 \), \ (2 \), \ (4 \) байта.

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

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

Однобайтовое уявлення застосовується тільки для позитивних цілих чисел. У цьому форматі відсутня знаковий розряд. Найбільше двійковечисло, яке може бути записано за допомогою \ (1 \) байта, так само \ (11111111 \), що в десятковій системі числення відповідає числу 255 10.

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

Найбільше (по модулю) ціле число зі знаком, яке може поміститися в \ (2 \) - байтовому форматі, це число \ (0 1111111 11111111 \), тобто за допомогою подібного кодування можна представити числа від - 32 768 10 до 32 767 10.

Якщо число вийшло за вказані межі, відбудеться переповнення! Тому при роботі з великими цілими числами під них виділяється більше місця, наприклад \ (4 \) байта.

Формат з плаваючою точкою (нормалізована форма) використовується для подання в комп'ютері дійсних чисел (англ. Real). Числа з плаваючою точкою розміщуються, як правило, в \ (4 \) або \ (8 \) байтах.

Нормалізована форма представлення чисел забезпечує величезний діапазон їх записи і є основною в сучасних ЕОМ.

Подання цілого позитивного числа в комп'ютері

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

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

Наприклад, позитивне число +135 10 в залежності від формату представлення в комп'ютері матиме такий вигляд:
- для формату у вигляді \ (1 \) байта - \ (10000111 \) (відсутній знаковий розряд);
- для формату у вигляді \ (2 \) байтів - \ (0 0000000 10000111 \);
- для формату у вигляді \ (4 \) байтів - \ (0 0000000 00000000 00000000 10000111 \).

Подання цілого негативного числа в комп'ютері

Для уявлення цілого негативного числа в комп'ютері використовується додатковий код. Таке уявлення дозволяє замінити операцію віднімання числа операцією додавання з додатковим кодом цього числа. Знаковий розряд цілих негативних чисел завжди дорівнює \ (1 \).

Для уявлення цілого негативного числа в комп'ютері використовується наступне правило:

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

- до отриманого коду додається \ (1 \).

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

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

Негативне число може бути представлено у вигляді \ (2 \) або \ (4 \) байт.

Наприклад, уявімо число - 135 10 в \ (2 \) - байтовому форматі:

- 135 10 ® \ (10000111 \) (переклад десяткового числа без знака в двійковий код);
- \ (0 0000000 10000111 \) (додаток двійкового числа нулями зліва в межах формату);
- \ (0 0000000 10000111 \) ® \ (1 1111111 01111000 \) (переклад в зворотний код);
- \ (1 1111111 01111000 \) ® \ (1 1111111 01111001 \) (переклад в додатковий код).

Подання речового (дійсного) числа в комп'ютері

Дійсне число може бути представлено в експоненційному вигляді, наприклад:

16000000 10 = 0. 16 ⋅ 10 8

- 0,0000156 10 = - 0,156 ⋅ 10 - 4

У цьому форматі дійсне число (\ (R \)) представляється у вигляді добутку мантиси (\ (m \)) і підстави системи числення (\ (P \)) в цілій степені (\ (n \)), званої порядком.

Уявімо це в загальному вигляді, як: R = m ⋅ P n.

Порядок \ (n \) вказує, на скільки позицій і в якому напрямку повинна зміститися в мантисі точка (кома), що відокремлює дробову частину від цілої. Мантиса, як правило, нормалізується, тобто представляється у вигляді правильної дробу \ (0 \) <\(m\) <\(1\).

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

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

Для розміщення дійсного числа зазвичай використовується \ (2 \) або \ (4 \) байта.

В \ (2 \) - байтовому форматі уявлення дійсного числа перший байт і три розряду другого байта виділяються для розміщення мантиси, в інших розрядах другого байта розміщуються порядок числа, знаки числа і порядку.

В \ (4 \) - байтовому форматі уявлення дійсного числа перші три байта виділяються для розміщення мантиси, в четвертому байті розміщуються порядок числа, знаки числа і порядку.

Формати подання чисел в комп'ютері

Чим більше розрядів відводиться під запис мантиси, тим вище точність представлення числа.

Приклад запису числа 6. 25 10 = 110. 01 2 = 0. 11001 ⋅ 2 11. представленого в нормалізованому вигляді, в четирёхбайтовом форматі з сімома розрядами для запису порядку.

Формати подання чисел в комп'ютері