Щоразу, коли смартфон відтворює улюблену мелодію або «розумна» лампа змінює яскравість, за лаштунками діє напрочуд лаконічна концепція — два відмінні стани. Їх заведено зображати цифрами 0 і 1, проте суть не в символах, а в факті наявності лише пари альтернатив. Парадоксально, але ця дихотомія дозволила людству побудувати цілу цифрову цивілізацію. Розберемо історію виникнення двійкового коду.
Доісторичні проблиски: від мисливських міток до вузликових мотузок
Задовго до появи писемності люди фіксували події найпримітивнішими засобами. У печері Ла-Пасьега в Кантабрії археологи знайшли серії рівномірних штрихів, які, ймовірно, відображають кількість впольованих тварин. Мітка присутня – подія відбулася, мітки немає – полювання не вдалося. Вже тоді протиставлення «слід/порожнеча» вирішувало завдання обліку.
До XIII століття Англії повсюдно застосовувалися tally-sticks — розщеплені палички з тиси. Боргове зобов’язання вирізали зарубками, після чого паличку розколювали: довга половина залишалася у кредитора, коротка — у боржника. Під час перевірки половинки мали збігтися аж до сколів деревини, інакше запис вважався підробленим. Бінарна логіка «зарубка є/зарубки немає» гарантувала захист від фальсифікації без будь-якої математики.
На іншому кінці світу інки використовували кіпу — пучок різнокольорових мотузок із вузлами різного типу. Положення вузла на нитки ставило розряд (одиниці, десятки, сотні), а вид вузла – значення. Відсутність вузла означала нуль, тобто «заперечення» числа. Кіпу – ранній приклад, де дискретні стани (вузол/порожньо) утворюють лічильну систему, придатну для податків і переписів.
Філософське коріння: гексаграми, піфагорійці та закон несуперечності
У III столітті до н. е. китайські мудреці склали «Книгу Змін». Основа трактату – 64 гексаграми, кожна з яких будується із шести ліній: суцільна символізує ян, переривчаста – інь. Шість бінарних позицій дають 26 = 64 комбінації, причому взаємне розташування ліній тлумачилося як модель будь-якої життєвої ситуації. Філософія переходила в код — хай із містичним нахилом.
Давньогрецькі школи дійшли до двійковості іншим шляхом. Піфагорійці пов’язували парність із жіночим початком, непарність – із чоловічим; Аристотель формулював закон виключеного третього: твердження чи істинно, чи хибно, третього не дано. Ця ідея стала наріжним каменем формальної логіки та підготувала ґрунт для алгебри Буля.
Індійська метрика Пінгали: вірші як числа
У II столітті до зв. е. граматик Пінгала аналізував санскритські вірші. Довгий склад (guru) він позначив одиницею, короткий (laghu) – нулем. Перебираючи всі варіанти поєднань складів, Пінгала фактично побудував біноміальний трикутник, еквівалентний сучасним формулам для 2n. Його трактат «Чандахшастра» описує алгоритм перетворення десяткового числа на двійкове майже за два тисячоліття до європейських учених.
Метрика віршів та комбінаторика чисел поєдналися в єдиній схемі: поет міг прогнозувати ритмічні малюнки, а математик — бачити в поезії сувору дискретну структуру. Так художнє завдання несподівано стало математичним мостом до двійкового коду.
Таємні листи Френсіса Бекона
Перенесемося до Англії XVII століття. Френсіс Бекон, філософ та державний діяч, винайшов дволітерний шифр. Кожній літері латиниці відповідала п’ятирічна послідовність символів A і B. Оскільки A і B можна подати різним накресленням шрифту або нахилом пера, шифр дозволяв приховати секретне послання всередині звичайного тексту.
Головна інновація Бекона полягала не в криптографії як такої, а ідеї, що будь-яка інформація може бути виражена серією бінарних ознак, непомітних неозброєному оку. Це ранній приклад стеганографії, який передбачив сучасні цифрові водяні знаки.
Лейбніц: від східної символіки до математичної суворості
У 1703 році Готфрід Вільгельм Лейбніц публікує працю «Explication de l’Arithmétique Binaire». Надихнувшись китайськими гексаграмами, він показує, що будь-яке натуральне число розкладається на суму ступенів двійки. Лейбніц підкреслює метафізичний аспект: Бог створив все з ніщо (0) і єдності (1).
Важливішою філософії виявилася практична сторона. Лейбніц зазначає, що операції у двійковій системі простіше механізувати: додавання зводиться до перенесення одиниць, множення – до зсувів. Хоча його механічний калькулятор “Stepped Reckoner” працював у десятковій основі, ідея спрощення обчислень через двійковість була висловлена вперше.
Перфокарти: тканина, статистика та народження IBM
В 1804 ткач Жозеф-Марі Жаккар автоматизує верстат, використовуючи перфокарти. Отвір на карті підіймає гачок і змінює візерунок, відсутність отвору залишає нитку на місці. Карта шириною з долоню містила один «кадр» малюнка, а стрічка із сотень карт перетворювала складний орнамент на серію бінарних рішень «дірка/картон».
Через вісім десятиліть американець Герман Холлеріт застосовує той самий принцип обробки даних перепису населення. Його електромеханічний табулятор зчитує отвори металевими штирями: контакт із ртутною ванною замикає ланцюг. Перепис 1890 обробляється за 31 місяць замість семи років, що економить державі мільйони доларів. Компанія Холлеріта пізніше стане IBM, а перфокарта – головним носієм даних аж до 1970-х.
Цікаво, що перші програмісти писали код, буквально «пробиваючи» його дироколом. Помилка в одному отворі означала зайву дірку або її відсутність — та сама ціна одного біта, але в целюлозній формі.
Телеграф, семафори та перші «бітові» канали зв’язку
Самуель Морзе в 1840-х створює абетку з точок та тире. Натиснув ключ – по дроту йде струм, відпустив – струму немає. Послідовність імпульсів та пауз кодує букви. Перед нами перший масовий приклад передачі чисто двійковим сигналом «струм/немає струму».
До електрики існував оптичний семафор Клода Шаппа. Башти з рухомими рейками передавали повідомлення на десятки кілометрів. Кожна рейка мала два положення, а їх комбінації утворювали алфавіт зі 196 знаків. Попри візуальну природу, система спиралася на ті ж два стійкі стани.
Пізніше Еміль Бодо запропонував п’ятибітний телеграфний код, який дозволив автоматизувати прийняття на друкарських апаратах. Так двійковість зробила крок від ручного коду Морзе до механізованого обміну символами, наблизивши еру цифрового зв’язку.
Булева алгебра та 21-річний Шеннон: математика зустрічає реле
1937 року аспірант MIT Клод Шеннон у магістерській роботі доводить, що релейні схеми можна проєктувати, застосовуючи булеву алгебру. До нього інженери будували логічні ланцюги «на око», а Шеннон показав метод перекладу формул «(A AND B) OR C» у конкретні контакти та котушки.
Через десять років він публікує «A Mathematical Theory of Communication». Поняття біт отримує строге кількісне трактування: це мінімальна одиниця невизначеності. Формула ентропії H = −Σp·log₂p дозволяє виміряти «інформаційний зміст» тексту та обчислити граничну пропускну здатність каналу. З цього моменту двійковий код стає не просто зручністю, а оптимальним рішенням для зв’язку.
Після Шеннона з’явилися коди корекції помилок, методи стискування і вся теорія цифрових комунікацій. Все почалося зі спостереження, що реле вміє бути або замкнутим, або розімкненим, а значить ідеально втілює булеву логіку.
Електронні першопроходці: лампи, ртуть та пікселі
Перші електронні обчислювачі – британський Colossus та американський ENIAC – використовували десятки тисяч вакуумних ламп. Кожна лампа могла перебувати у стані «проводить/не проводить», отже природно кодувала біт. Однак лампи грілися, перегоряли та споживали кіловати енергії.
У 1949 році EDSAC вводить ртутні лінії затримки: акустична хвиля біжить по трубці з ртуттю, відбивається та повертається до приймача. Хвиля є – біт 1, хвилі немає – біт 0. Manchester Baby демонструє зберігання даних в електронно-променевій трубці: заряджений піксель світиться, розряджений – гасне. Обидва рішення були крихкими, але показали, що пам’ять може бути повністю електронною.
До 1950-х лампи починають замінювати транзистори. Транзистор працює швидше, надійніше та компактніше, зберігаючи ту ж бінарну природу «відкритий/закритий». Так двійковий код отримав нарешті надійний фізичний носій.
Феритові сердечники та магнітні домени: як біти навчилися зберігатися
Команда Джея Форрестера в MIT у 1951 році створює оперативну пам’ять. Кільце з фериту пронизують трьома проводами: два адресні та один зчитуючий. Перехресний імпульс перевертає магнетизацію кільця, а провід, що зчитує, фіксує зміну потоку. Сховище інформації стає незалежним: біти зберігаються навіть при відключенні живлення.
Феритові ядра використовувалися в бортових комп’ютерах ракет та в навігаційній системі «Аполлона». Кожне ядро є фізичним об’єктом діаметром 1 мм, але надійність була настільки високою, що NASA довірило їм життя астронавтів.
Подальша еволюція призвела до магнітних дисків. Спочатку біти орієнтували вздовж доріжки (longitudinal), потім — перпендикулярно до площини (perpendicular), що збільшило щільність у сотні разів. Відкриття ефекту гігантського магнетоопору (GMR) дозволило зчитувати домени розміром десятки нанометрів, і сьогодні диски на 20 ТБ — реальність.
Продовження читайте у другій частині.
Більше цікавого: