Якщо ви володієте комп’ютером довше, ніж триває перерва на каву, ви напевно стикалися з термінами біти і байти. Це стандартні одиниці виміру оперативної пам’яті (RAM), ємності жорсткого диска та розмірів файлів у будь-якому сучасному файловому менеджері.
Ви можете почути рекламне твердження про те, що машина оснащена 32-бітним процесором Pentium, має 64 мегабайта оперативної пам’яті і 2,1 гігабайта простору на жорсткому диску. Ці специфікації постійно зустрічаються в технічних посібниках та навчальних матеріалах. Розуміння того, що насправді означають ці терміни, допомагає припинити ворожити та почати точно знати.
Десяткові числа
Щоб зрозуміти, що таке біт, порівняйте його з чимось знайомим: цифрами.
Цифра є окремою позицією для значення від 0 до 9. Ми об’єднуємо їх, щоб отримати великі числа. Візьмемо число 6357. Воно складається із чотирьох цифр. Сімка знаходиться в розряді «одиниць». П’ятірка – у розряді «десятків». Трійка – у розряді «сотень». Шістка займає розряд «тисяч».
Це можна записати явно:
(6 * 1000) + (3 * 100) + (5 * 10) + (7 * 1) = 6000 + 300 + 50 + 7 = 6357
Або використовувати ступеня числа 10. Використовуючи символ каретки (^) для позначення «у мірі», це виглядає так:
(6 * 10 ^ 3) + (3 * 10 ^ 2) + (5 * 10 ^ 1) + (10 ^ 0) = 6000 + 300 + 50 + 7 = 6357
Кожна цифра є розрядом для наступного вищого ступеня числа 10. Перша цифра починається з 10^0.
Це здається нормальним, тому що ми щодня використовуємо десяткову систему числення. Ймовірно, вона існує тому, що люди мають десять пальців. Якби ми еволюціонували з вісьмома пальцями, ми, мабуть, використали б вісімкову систему. Можна використовувати будь-яку систему числення. Різні підстави мають сенс у різних контекстах.
Комп’ютери використовують двійкову систему числення. Вона також відома як двійкова система числення.
Двійкова система та 8-бітний байт
Комп’ютери використовують двійкову систему, тому що це дешево. Можна було б збудувати комп’ютер на десятковій системі. Він був би просто неймовірно дорогим. Апаратне забезпечення на двійковій системі відносно доступне за ціною.
Таким чином, комп’ютери використовують двійкові числа. Вони використовують двійкові цифри замість десяткових. Слово біт (bit) є скороченням від “Binary digIT” (двійкова цифра).
Десяткові цифри мають 10 значень: від 0 до 9. Біти мають лише два значення: 0 та 1. Двійкове число – це просто рядок з нулів та одиниць, наприклад, 1011.
Щоб знайти значення, використовуйте ступінь числа 2 замість ступенів 10.
(1 * 2 ^ 3) + (0 * 2 ^ 2) + (1 * 2 ^ 1) + (1 * 2 ^ 0) = 8 + 0 + 2 + 1 = 11
Кожен біт представляє зростаючі ступеня числа 2. Рахунок у двійковій системі простий. Ось як десяткові та двійкові числа порівнюються від 0 до 20:
- 0 = 0
- 1 = 1
- 2 = 10
- 3 = 11
- 4 = 100
- 5 = 101
- 6 = 110
- 7 = 111
- 8 = 1000
- 9 = 1001
- 10 = 1010
- 11 = 1011
- 12 = 1100
- 13 = 1101
- 14 = 1110
- 15 = 1111
- 16 = 10000
- 17 = 10001
- 18 = 10010
- 19 = 10011
- 20 = 10100
Зверніть увагу на перенесення розряду. Серед двох двійкова система вперше використовує перенесення. Якщо біт дорівнює 1 і ви додаєте 1, він стає 0, а наступний біт стає 1. Перехід від 15 до 16 викликає переповнення через чотири біти, перетворюючи 1111 на 10000.
Біти рідко мандрують поодинці. Вони групуються набори по 8 біт. Ці групи називаються байтами.
Чому в байті вісім бітів? Це все одно, що запитати, чому в дюжині 12 яєць. Люди прийшли до 8 біт методом спроб і помилок за останні 50 років.
За допомогою 8 бітів можна представити 256 значень. Вони варіюються від 0 до 255.
- 0 = 00000000
- 1 = 00000001
- 2 = 00000010
- …
- 254 = 11111110
- 255 = 11111111
У статті Як працюють CD-диски ви дізнаєтесь, що CD використовує 2 байти на семпл. Це 16 бітів. Кожен семпл може змінюватись від 0 до 65
Як кодування ASCII та двійкова математика забезпечують зберігання ваших даних
Текст – це не магія. Це просто числа у масці.
Коли ви набираєте речення, комп’ютер не бачить літери. Він бачить двійкові значення. Зокрема, він спирається на стандартний набір символів ASCII, щоб перетворити натискання клавіш на дані. У цій системі кожне двійкове значення від 0 до 127 порівнюється з конкретним символом. Більшість систем розширює цей набір до 256 значень, використовуючи повний байт, додаючи літери з діакритичними знаками та символи для міжнародних мов.
Але фундамент закладається у перших 128 кодах.
Візьміть текстовий редактор Notepad у Windows 95/98. Якщо ви наберете “Four score and seven years ago”, програма виділить рівно один байт пам’яті на кожен символ. Це включає прогалини між словами. Пробіл – це код ASCII 32. Крапка – 46. Літера ‘A’ – 65.
Спробуйте самі.
Створіть файл на ім’я getty.txt. Наберіть цю пропозицію. Збережіть його. Відкрийте провідник файлів. Розмір файлу складає 30 байт. Чому? Тому що у ньому 30 символів. Додайте одне слово. Розмір файлу збільшиться на кількість літер цього слова. Це пряме співвідношення 1:1.
Відкрийте файл як сирі дані та літери зникнуть. Ви побачите цифри.
`
Це десяткові уявлення кодів ASCII. Для технічної точності: машина бачить лише двійковий код. 32 стає 00100000. Але логіка зберігається: кожний байт містить один символ.
Перші 32 значення (від 0 до 31) – це не літери. Це коди, що управляють. Повернення каретки. Переклад рядка. Звуки сигналу. Друковані символи починаються з 32. За ними йдуть розділові знаки. Потім цифри. Потім великі літери. Потім малі. Повну таблицю можна переглянути на сайті Unicode.org, але принцип простий: зберігання тексту — це список цих цілих чисел.
Розуміння приставок байтів та двійкової математики
Як тільки ви зрозумієте, що дані це просто байти, ви зіткнетеся з новою проблемою: масштабом.
Байт – це мало. Більшість файлів є величезними. Тож нам потрібні приставки.
Ми використовуємо приставки для байтів, щоб означати порядок величини. Кіло, мега, гіга. Це не просто рекламні терміни. Це двійкові множники.
- Кіло (K): $2^{10}$ = 1 024 байти
- **Мега (M): ** $ 2 ^ {20} $ = 1 048 576 байт
- Гіга (G): $2^{30}$ = 1 073 741 824 байти
- Тера (T): $2^{40}$ = ~1,1 трильйона байт
- Пета (P): $2^{50}$ = ~1,1 квадрилліона байт
- Екса (E): $2^{60}$ = ~1,1 квінтильйона байт
- Зетта (Z): $2^{70}$
- Йотта (Y): $2^{80}$
Кіло – це приблизно тисяча. Мега – мільйон. Гіга – мільярд.
Коли хтось стверджує, що його жорсткий диск має об’єм “2 гігабайти”, він має на увазі $2 \times 2^{30}$ байт. Рівне 2147483648 байт.
Це звучить абстрактно, поки ви не представите ці дані візуально. Стандартний компакт-диск вміщує близько 650 мегабайт. Три диски заповнюють 2-гігабайтний диск. Бази даних на терабайти поширені. Бази даних на петабайти, мабуть, існують у великих урядових установах. Масштаб зростає експонентно.
Це призводить до двійкової математики.
Вона працює так само, як десяткова, з одним суворим обмеженням: кожен біт може бути лише 0 чи 1.
У десятковій системі ми рахуємо від 0 до 9. Коли ми досягаємо 9 і додаємо 1, ми переносимо 1 до наступного розряду. У двійковій системі все працює аналогічно, але перенесення відбувається швидше.
Візьмемо десяткове додавання:
`
Починаємо праворуч. $2+1=3$. Наступний розряд: $5+5=10$. Записуємо 0, переносимо 1. Наступний: $4+7+1(перенесення)=12$. Записуємо 2, переносимо 1. Підсумок: $0+0+1=1$. Результат: 1203.
Тепер двійкова система.
`
Правий біт: $ 0 + 1 = 1 $. Перенесення немає.
Другий біт: $ 1 + 1 = 10 $. Записуємо 0, переносимо 1.
Третій біт: $ 0 +1 +1 (перенесення) = 10 $. Записуємо 0, переносимо 1.
Четвертий біт: $ 0 + 0 + 1 (перенесення) = 1 $.
Результат 1001. У десятковій системі це 9. Математика ідентична. Просто уявлення засноване на системі числення з основою 2 замість 10.
Підсумок
Біти – це двійкові цифри. Вони дорівнюють 0 або 1.
Байти – це групи з 8 біт.
Текст — це послідовність байтів, зіставлених з кодами ASCII.
Розмір сховища вимірюється у ступенях двійкового числа 1024.
Це не складно. Це просто фундамент.
Для більш глибокого вивчення булевої логіки та реалізації логічних воріт подивіться, як працює бульова додавання. Решта – це просто рахунок у двійковій системі.


































