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

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

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

Цілі числа зберігаються в пам'яті в форматі з фіксованою комою. При такому форматі представлення чисел для зберігання цілих невід'ємних чисел відводиться регістр пам'яті, що складається з восьми осередків пам'яті (8 біт). Кожному розряду комірки пам'яті відповідає завжди один і той же розряд числа, а кома знаходиться праворуч після молодшого розряду і поза розрядної сітки. Наприклад, число 11001101 буде зберігатися в регістрі пам'яті наступним чином:

Максимальне значення цілого невід'ємного числа, яке може зберігатися в регістрі в форматі з фіксованою комою, можна визначити з формули: 2 - 1, де п - число розрядів числа. Максимальне число при цьому буде дорівнює 2 - 1 = 255 = 11111111і мінімальне 0 = 00000000. Таким чином, діапазон зміни цілих невід'ємних чисел буде перебувати в межах від 0 до 255.

На відміну від десяткової системи в двійковій системі числення при комп'ютерному поданні двійкового числа відсутні символи, що позначають знак числа: позитивний (+) або негативний (-), тому для представлення цілих чисел зі знаком в двійковій системі використовуються два формати представлення числа: формат значення числа зі знаком і формат додаткового коду. У першому випадку для зберігання цілих чисел зі знаком відводиться два регістра пам'яті (16 біт), причому старший розряд (крайній зліва) використовується під знак числа: якщо число позитивне, то в знаковий розряд записується 0, якщо число негативне, то - 1. Наприклад , число 536 = 0000001000011000будет представлено в регістрах пам'яті в наступному вигляді:

а негативне число -536 = 1000001000011000 в вигляді:

Максимальне позитивне число або мінімальне від'ємне в форматі значення числа зі знаком (з врахуванням думки одного розряду під знак) дорівнює 2 - 1 = 2 - 1 = 2 - 1 = 32767 = 111111111111111 і діапазон чисел буде перебувати в межах від -32767 до 32767.

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

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

1) модуль числа записати прямим кодом в п (п = 16) довічних розрядах;

2) отримати зворотний код числа (інвертувати всі розряди числа, т. Е. Все одиниці замінити на нулі, а нулі - на одиниці);

3) до отриманого зворотного коду додати одиницю до молодшого розряду.

Наприклад, для числа -536 в такому форматі модуль буде дорівнює 0000001000011000, зворотний код - 1111110111100111, а додатковий код - 1111110111101000. Перевіримо отримане значення додаткового коду за допомогою калькулятора. Для цього введемо значення модуля числа -536, т. Е. Число 536, і за допомогою опціонної кнопки Bin перетворимо це число, представлене в десятковій системі числення, в двійкову систему, попередньо встановивши опціонну кнопку 2 байта. Натиснувши кнопку Not калькулятора, отримаємо зворотний код числа, а додавши до зворотного коду двійкову одиницю, - додатковий код. Остаточний результат отримаємо в поле вікна програми Калькулятор (рис. 2.6). Можна зробити ще простіше: набравши на калькуляторі число -536і активізувавши кнопку Bin. отримати додаткової код цього числа в двійковій системі числення.

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

Мал. 2.6. Результат отримання додаткового коду

Необхідно пам'ятати, що додатковий код позитивного числа - саме число.

Для зберігання цілих чисел зі знаком крім 16-розрядної комп'ютерного уявлення, коли використовуються два регістри пам'яті (такий формат числа називається також форматом коротких цілих чисел зі знаком), застосовуються формати середніх і довгих цілих чисел зі знаком. Для представлення чисел в форматі середніх чисел використовується чотири регістри (4 х 8 = 32 біт), а для представлення чисел в форматі довгих чисел - вісім регістрів (8 х 8 = 64 біта). Діапазони значень для формату середніх і довгих чисел будуть відповідно рівні: - (2 - 1) ... + 2 - 1 і - (2-1) ... + 2 - 1.

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

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

де А - мантиса числа; h - основа системи числення; р - порядок числа.

Вираз (2.7) для десяткової системи числення набуде вигляду:

Така форма подання числа також називається нормальною. Зі зміною порядку кома в числі зміщується, т. Е. Як би плаває вліво або вправо. Тому нормальну форму представлення чисел називають формою з плаваючою комою. Десяткове число 15,5, наприклад, у форматі з плаваючою комою може бути представлено у вигляді: 0,155 · 10; 1,55 · 10; 15,5 · 10; 155,0 · 10; 1550,0 · 10 і т. Д. Ця форма запису десяткового числа 15,5 з плаваючою комою не використовується при написанні комп'ютерних програм і введенні їх в комп'ютер (пристрої введення комп'ютерів сприймають тільки лінійну запис даних). Виходячи з цього вираз (2.7) для представлення десяткових чисел і введення їх в комп'ютер перетворюють до вигляду

де Р - порядок числа,

т. е. замість основи системи числення 10 пишуть букву Е, замість коми - точку, і знак множення не ставиться. Таким чином, число 15,5 у форматі з плаваючою комою і лінійної запису (комп'ютерне подання) буде записано у вигляді: 0.155Е2; 1.55Е1; 15.5Е0; 155.0Е-1; 1550.0Е-2 і т.д.

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

де | А | - абсолютне значення мантиси числа.

Умова (2.9) означає, що мантиса повинна бути правильної дробом і мати після коми цифру, відмінну від нуля, або, іншими словами, якщо після коми в мантисі коштує не нуль, то число називається нормалізованим. Так, число 15,5 у нормалізованому вигляді (нормалізована мантиса) в формі з плаваючою комою буде виглядати наступним чином: 0,155 · 10, т. Е. Нормалізована мантиса буде A = 0,155 і порядок Р = 2, або в комп'ютерному поданні числа 0.155Е2 .

Числа в формі з плаваючою комою мають фіксований формат і займають в пам'яті комп'ютера чотири (32 біт) або вісім байт (64 біт). Якщо число займає в пам'яті комп'ютера 32 розряду, то це число звичайної точності, якщо 64 розряду, то це число подвійної точності. При записи числа з плаваючою комою виділяються розряди для зберігання знака мантиси, знака порядку, мантиси і порядку. Кількість розрядів, яке відводиться під порядок числа, визначає діапазон зміни чисел, а кількість розрядів, відведених для зберігання мантиси, - точність, з якою задається число.

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

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

2) виконуються арифметичні операції над мантиси чисел;

3) проводиться нормалізація отриманого результату.

Пояснимо сказане вище на прикладах.

Зробимо складання двох чисел 0,5 · 10 і 0,8 · 10 в форматі з плаваючою комою.

Проведемо вирівнювання порядків і складання мантисс 0,05 · 10 + 0,8 · 10 = 0,85 · 10. Отримана мантиса 0,85 є нормалізованої, так як задовольняє умові (2.9).

Зробимо складання двох чисел 0,1 · 2 і 0,1 · 2 в форматі з плаваючою комою.

Проведемо вирівнювання порядків і складання мантисс: 0,01 · 2 + 0,1 · 2 = 0,11 · 2. Отримана мантиса 0,11 є нормалізованої, так як задовольняє умові (2.9).