Основи представлення даних: біти, байти та системи числення
У комп’ютерних науках будь-які типи даних мають універсальне двійкове представлення. Це дозволяє уніфікувати вимірювання обсягу інформації.
Біти та байти
Біт — це мінімальна одиниця інформації. Він може перебувати лише у двох станах: вимкненому (0) або увімкненому (1).
Стандартно група з 8 бітів утворює байт. Вісім бітів дозволяють створити 256 різних комбінацій (від 00000000 до 11111111). У деяких архітектурах для надійності використовують додатковий дев’ятий біт — контроль парності, який стежить, щоб кількість одиниць у байті завжди була непарною (або парною, залежно від налаштувань).
Біти в байті нумерують справа наліво: від 0 до 7.
- Кілобайт (КБ): 210=1024 байти.
- Слово: У 16-бітній архітектурі група з двох байтів (16 бітів) називається «словом». Біти у слові нумеруються від 0 до 15 справа наліво.
Двійкова система числення
Оскільки комп’ютер розрізняє лише два стани (0 та 1), він працює у двійковій системі.
Перетворення з десяткової системи у двійкову: Щоб перетворити число (наприклад, 59), потрібно послідовно ділити його на 2 (основу системи), записуючи залишки.
| Операція | Частка | Залишок |
| 59 / 2 | 29 | 1 (молодша цифра) |
| 29 / 2 | 14 | 1 |
| 14 / 2 | 7 | 0 |
| 7 / 2 | 3 | 1 |
| 3 / 2 | 1 | 1 |
| 1 / 2 | 0 | 1 |
Результат: Записуємо залишки знизу вгору — 1110112. Для зворотного перетворення у десяткову систему кожну цифру множимо на 2 у відповідному ступені:
1⋅25+1⋅24+1⋅23+0⋅22+1⋅21+1⋅20=59
Шістнадцяткова система числення
Це зручний спосіб запису двійкових даних: кожний байт ділиться на дві частини (по 4 біти), кожна з яких записується одним символом від 0 до F.
| Двійк. | Дес. | Шіст. | Двійк. | Дес. | Шіст. | |
| 0000 | 0 | 0 | 1000 | 8 | 8 | |
| 0001 | 1 | 1 | 1001 | 9 | 9 | |
| 0010 | 2 | 2 | 1010 | 10 | A | |
| 0011 | 3 | 3 | 1011 | 11 | B | |
| 0100 | 4 | 4 | 1100 | 12 | C | |
| 0101 | 5 | 5 | 1101 | 13 | D | |
| 0110 | 6 | 6 | 1110 | 14 | E | |
| 0111 | 7 | 7 | 1111 | 15 | F |
Приклад перетворення числа 42936 у шістнадцятковий формат: Ділимо число на 16, доки частка не дорівнюватиме 0.
| Операція | Частка | Залишок | Шістнадцяткове значення |
| 42936 / 16 | 2683 | 8 | 8 |
| 2683 / 16 | 167 | 11 | B |
| 167 / 16 | 10 | 7 | 7 |
| 10 / 16 | 0 | 10 | A |
Результат: A7B816 (або A7B8H). Перевірка: 10⋅163+7⋅162+11⋅161+8⋅160=42936.
Представлення від’ємних чисел: Доповняльний код
Для роботи з від’ємними числами один біт (зазвичай крайній лівий або «найстарший») виділяють під знак:
- 0 — число додатне;
- 1 — число від’ємне.
Проте просто змінити 0 на 1 у знаковому біті недостатньо, адже тоді виникають труднощі з додаванням (наприклад, з’являється «мінус нуль»). Тому використовують алгоритм доповняльного коду.
Як отримати доповняльний код (на прикладі числа -5)
Припустимо, ми працюємо з 8-бітним байтом.
- Прямий код: Записуємо додатне число 5 у двійковому форматі.
00000101 - Зворотний код (інверсія): Міняємо всі 0 на 1, а 1 на 0.
11111010 - Доповняльний код: Додаємо одиницю до отриманого результату.
11111010 + 1 = 11111011
Отже, число -5 у комп’ютері виглядає як 11111011.
Чому це зручно?
Головна перевага доповняльного коду в тому, що арифметичному логічному пристрою (АЛП) процесора не потрібно вміти віднімати. Він просто додає додатне число до від’ємного, а «зайвий» біт переносу ігнорується.
Приклад: 5+(−5)
00000101 (це 5)
+ 11111011 (це -5)
----------
100000000
Оскільки ми працюємо в межах 8 бітів, дев’ятий біт (одиниця зліва) відкидається, і ми отримуємо 00000000 — чистий нуль.
