Зображення чисел у комп'ютері

Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного програмування Основи сучасного

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

#include <iostream.h>

Int main(void)

{

float h,x;

int i,m;

m=512;

for(i=m–1; i<=m+1;i++)

{

h=1./i;

x=0.;

for(int j=1;j<=i;j++)

x=x+h;

printf("x=%10.8f\n",x);

}

return 0;

}

Неважко бачити, що програма для трьох сусідніх значень підсумовує i разів величину 1/i. Здавалося б, кінцевий результат її роботи – і*(1/і) – має дорівнювати одиниці. Перевіримо. Запустивши програму, побачимо на екрані

  0.99999666
  1.00000000
  0.99999666

Точним є лише значення i==512. Тому необхідно розібратися із зображенням чисел усередині комп'ютера.

Системи числення

Числа, якими ми звикли користуватися, називаються десятковими, тому арифметика дій з ними також називається десятковою. Кожне число можна скласти з набору цифр, що містить 10 символів – цифр. Якщо припустити, що алфавітом є множина {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, а число – це слово, то зрозуміло, що назва "десяткове" походить від кількості літер алфавіту.

Візьмемо, наприклад, число 358. Цей запис означає, що в числі три сотні, п'ять десятків і вісім одиниць. Отже, можна записати таку рівність: 358 = 300 + 50 + 8 = 3 * 102 + 5 * 101 + 8 * 100.

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

Позначимо i- ту цифру числа через ai . Тоді число можна записати у вигляді anan- 1 …...a 2 a 1. Запис числа можна зобразити так:

anan- 1 …...a 2 a 1= an х 10 n- 1+ an- 1 х 10 n- 2+ …... + a 2 х 101+ a 1 х 100, (6.1)

де ai – символ з алфавіту {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

Число 10 є основою утворення числа, яка називається основою системи числення, а сама система числення називається десятковою.

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

Наочність зображення чисел і порівняльна простота виконання арифметичних операцій характерні для позиційних систем числення.

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

Кількість р символів алфавіту, що використовуються в позиційній системі числення, називається її основою.

У загальному випадку в системі з основою р будь-яке число можна зобразити у вигляді полінома з основою р:

тоді саме число у вигляді послідовності літер алфавіту записується як

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

Технічно реалізувати десяткову систему числення на комп'ютері дуже складно: для збереження десяткової цифри потрібен пристрій з десятьма стійкими станами.

У комп'ютерах застосовують позиційні системи числення з недесятковою основою: двійкову, вісімкову, шістнадцяткову.

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

0 ´ 0 = 0
0 ´ 1 = 0
1 ´ 0 = 0
1 ´ 1 = 1

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

,

де – або 0, або 1.

У вісімковій системі застосовуються вісім цифр: 0, 1, 2, 3, 4, 5, 6, 7. Для неї формула (6.1) має вигляд

де коефіцієнти набувають значень від 0 до 7.

Аналогічне зображення справедливе і для шістнадцяткової системи. Алфавіт складається з 16 літер: десяти цифр і шести літер – A, B, C, D, E, F, що позначають числа 10, 11, 12, 13, 14, 15, відповідно.

У табл. 5.1 подано відповідність чисел у різних системах числення.

Таблиця 5.1

Десяткова Двійкова Вісімкова Шістнадцяткова
       
       
       
       
       
       
       
       
       
       
      A
      B
      C
      D
      E
      F

Розглянемо процес зображення чисел у різних системах числення.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: