Числа в пам'яті комп'ютера
Основні теми параграфа:
- уявлення цілих чисел;
- розмір осередку і діапазон значень чисел;
- особливості роботи комп'ютера з цілими числами;
- уявлення дійсних чисел;
- особливості роботи комп'ютера з речовими числами.
Будь-яка інформація в пам'яті комп'ютера представляється в двійковому вигляді: послідовністю нулів і одиниць. Історично першим типом даних, з якими стали працювати комп'ютери, були числа. Тепер це і числа, і тексти, і зображення, і звук. Робота з даними будь-якого типу в кінцевому підсумку зводиться до обробки двійкових чисел - чисел, записуваних за допомогою двох цифр - 0 і 1.
Тому сучасні комп'ютерні технології називають цифровими технологіями.
У комп'ютері розрізняються два типи числових величин: цілі числа і речові числа. Розрізняються способи їх подання в пам'яті комп'ютера.
Подання цілих чисел
Частина пам'яті, в якій зберігається одне число, будемо називати осередком. Мінімальний розмір осередку, в якій може зберігатися ціле число, - 8 бітів, або 1 байт. Одержимо уявлення десяткового числа 25 в такій комірці. Для цього потрібно перевести число в двійкову систему числення. Як це робиться, ви вже знаєте.
Тепер залишилося «вписати» його в Восьмирозрядних осередок (записати так зване внутрішнє подання числа). Робиться це так:
Число записується «притиснутим» до правого краю комірки (в молодших розрядах). Решта зліва розряди (старші) заповнюються нулями.
Найстарший розряд - перший зліва - зберігає знак числа. Якщо число позитивне, то в цьому розряді нуль, якщо негативне - одиниця. Найбільшому позитивного цілого числа відповідає наступний код:
Чому він дорівнює в десятковій системі? Можна розписати це число в розгорнутій формі і обчислити вираз. Але можна вирішити задачу швидше. Якщо до молодшого розряду цього числа додати одиницю, то вийде число 10000000. У десятковій системі воно дорівнює 2 +7 = 128. Значить:
011111112 = 128 - 1 = 127.
Максимальна ціле позитивне число, що міститься в 8-розрядну комірку, так само 127.
Тепер розглянемо уявлення цілих негативних чисел. Як, наприклад, в 8-розрядної комірки пам'яті буде представлено число -25?
Здавалося б, очевидною відповіддю є наступний: потрібно в поданні числа 25 замінити старший розряд з 0 на 1. Але в комп'ютері все дещо складніше.
Для представлення негативних цілих чисел використовується додатковий код.
Отримати додатковий код деякого негативного числа -X можна за наступним алгоритмом:
1) записати внутрішнє уявлення відповідного йому позитивного числа + Х - це ми вже вміємо;
2) записати зворотний код отриманого числа заміною у всіх розрядах 0 на 1 і 1 на 0;
3) до отриманого числа додати 1.
Визначимо за цими правилами внутрішнє уявлення числа -2510 в Восьмирозрядних осередку:
11100111 - це і є уявлення числа -25.
В результаті виконання такого алгоритму одиниця в старшому розряді виходить автоматично. Вона і є ознакою від'ємного значення.
Перевіримо отриманий результат. Очевидно, що при додаванні чисел +25 і -25 повинен вийти нуль.
Одиниця в старшому розряді, що отримується при додаванні, виходить за кордон осередки і зникає. В осередку залишається нол'.
З цього прикладу тепер можна зрозуміти, чому уявлення негативного числа називається додатковим кодом.
Подання восьмирозрядного негативного числа -X доповнює уявлення відповідного позитивного числа + Х до значення 2 8.
Розмір осередку і діапазон значень чисел
Найбільше по модулю негативне значення в Восьмирозрядних комірці рівна -2 7 = -128. Його внутрішнє уявлення: 10000000. Таким чином, діапазон представлення цілих чисел в Восьмирозрядних осередку наступний:
-128 ≤ X ≤ 127 або -2 7 ≤ X ≤ 2 7 - 1.
Восьмирозрядному уявлення цілих чисел забезпечує дуже вузький діапазон значень. Якщо потрібен більший діапазон, потрібно використовувати осередки більшого розміру. Для 16-розрядної комірки діапазон значень буде наступним:
-2 15 ≤ X ≤ 2 15 - 1 або -32 768 ≤ X ≤ 32 767.
Тепер стає очевидною узагальнена формула для діапазону цілих чисел в залежності від розрядності N осередки:
-2 N-1 ≤ Х ≤ 2 N-1 - 1.
Діапазон для 32-раз ряд ної комірки виходить досить великим:
-2 31 ≤ X ≤ 2 31 - 1 або -2 147 483 648 ≤ X ≤ 2 147 483 647.
Особливості роботи комп'ютера з цілими числами
Виконуючи на комп'ютері обчислення з цілими числами, потрібно пам'ятати про обмеженість допустимих значень.
Вихід результатів обчислень за межі допустимого діапазону називається переповненням. Переповнення при обчисленнях з цілими числами не викликає переривання роботи процесора. Машина продовжує вважати, але результати можуть виявитися неправильними.
Подання дійсних чисел
Цілі і дробові числа в сукупності називаються речовими числами. В математиці також використовується термін «дійсні числа».
Рішення більшості математичних задач зводиться до обчислень з числами.
Будь-яке дійсне число X можна записати у вигляді добутку мантиси m і підстави системи числення в деякій цілій степені n. яку називають порядком:
Наприклад, число 25,324 можна записати в такому вигляді: 0,25324 • 10 2. Тут m = 0,25324 - мантиса, n = 2 - порядок. Порядок вказує, на скільки позицій і в якому напрямку повинна зміститися десяткова кома в мантисі.
Найчастіше для зберігання дійсних чисел в пам'яті комп'ютера використовується або 32-розрядна, або 64-розрядна комірка. Перший варіант називається поданням зі звичайною точністю, другий - поданням з подвоєною точністю. В осередку зберігаються два числа в двійковій системі числення: мантиса і порядок. Тут ми не будемо детально розглядати правила подання дійсних чисел.
Відзначимо лише основні наслідки, що випливають з цих правил, які важливо знати користувачу комп'ютера, який займається математичними обчисленнями.
Особливості роботи комп'ютера з речовими числами
1. Діапазон дійсних чисел обмежений. Але він значно ширше діапазону цілих чисел в розглянутому раніше способі і х уявлення. Наприклад, при використанні 32-розрядної комірки цей діапазон наступний:
-3,4 • 10 38 ≤ X ≤ 3,4 • 10 38.
2. Вихід за діапазон (переповнення) - аварійна ситуація для процесора, який перериває свою роботу.
3. Результати машинних обчислень про числами містять похибку. При використанні подвоєною точності ця похибка зменшується.
Коротко про головне
У пам'яті комп'ютера цілі числа представляються в двійковій системі числення і можуть займати осередок розміром 8, 16, 32 і т. Д. Бітів.
Діапазон значень цілих чисел обмежений. Чим більше розмір осередку, тим більш широкий діапазон.
При виході результатів обчислень з цілими числами за допустимий діапазон робота процесора не переривається. При цьому результати можуть виявитися неточними.
Речові числа представляються у вигляді сукупності мантиси і порядку в двійковій системі числення. Звичайний розмір осередку - 32 або 64 біта.
Результати обчислень з числами наближені. Переповнення призводить до переривання роботи процесора.
Запитання і завдання
1. Як в пам'яті комп'ютера представлені цілі позитивні і негативні числа?
2. Вкажіть, який був би діапазон значень цілих чисел, якби для їх зберігання використовувалася Чотирирозрядний осередок.
3. Запишіть внутрішнє уявлення наступних десяткових чисел, використовуючи Восьмирозрядних осередок:
4. Визначте, яким десятковим числам відповідають наступні двійкові коди восьмирозрядного представлення цілих чисел.
а) 00010101;
6) 11111110;
в) 00111111;
г) 10101010.