Представи си, че се опитваш да използваш думи,
за да опишеш всяка сцена от филм, всяка нота от любимата ти песен
или всяка улица в града ти.
А сега си представи, че се опитваш да го направиш, използвайки само цифрите 1 и 0.
Всеки път, когато използваш интернет, за да гледаш филм,
да слушаш музика или да проверяваш посоката,
устройството ти прави точно това,
използвайки езика на двоичния код.
Копмютрите използват двоичен код,
защото е надежден начин за съхранение на информация.
Например основната памет на компютъра се състои от транзистори,
които превключват между високи и ниски волтажни нива,
като 5 волта и 0 волта.
Волтажът понякога варира, но тъй като има само две възможности,
стойност от 1 волт ще бъде прочетена като "ниска" .
Четенето се извършва от процесора на компютъра,
който използва състоянието на транзисторите,
за да контролира други компютърни устройства
според инструкциите на софтуера.
Гениалното в тази система е, че дадена двоична серия
сама по себе си няма предопределено значение.
Вместо това всеки вид информация се кодира с двоичен код
според различни правила.
Нека вземем числата. При нормална десетична система,
всяка цифра се умножава по 10 на степента на позицията ѝ,
започвайки от нула най-вдясно.
Така 84 в десетичен вид е 4x10⁰ + 8x10¹.
Двоичната система работи подобно,
но всяка позиция се базира на 2 на някаква степен.
Така 84 ще се напише по следния начин:
Междувременно буквите се интерпретират според стандартни правила като UTF-8,
който асоциира към всеки символ определена група 8-цифрова двоичен низ.
В този случай 01010100 отговаря на буквата "Т".
Как можеш да разбереш дали даден низ, в конкретен случай
означава "Т" или 84?
Ами, не можеш, виждайки само низа,
както не можеш да кажеш какво значи звукът "да", ако чуваш само него.
Ще ти трябва контекст, за да знаеш дали чуваш руски, испански или английски.
Подобен контекст ти трябва, за да знаеш дали гледаш
двоично число или двоичен текст.
Двоичният код също се използва за доста по-сложни типове данни.
Всеки кадър от това видео, например,
е създаден от стотици хиляди пиксели.
При цветни изображения
всеки пиксел е представен от три двоични серии,
които отговарят на основните цветове.
Всяка серия кодира число,
което определя наситеността на конкретния цвят.
След това видео драйвър програма прехвърля тази информация
към милионите течни кристали в екрана ти,
за да създаде различните нюанси, които виждаш в момента.
Звукът към това видео също е запазен чрез двоичен код
с помощта на техника наречена импулсно-кодова модулация.
Непрекъснатите звукови вълни се дигитализират
като се вземат "проби" от техните амплитуди на всеки няколко милисекунди.
Те се записват като числа, под формата на двоични низове,
които могат да достигнат до 44 000 за всяка секунда звук.
Когато звуковият софтуер на компютъра ти ги чете,
числата определят колко бързо намотките в говорителите ти трябва да вибрират,
за да създадат звуци с различни честоти.
За това са необходими милиарди битове,
но техният брой може да бъде намален чрез хитри формати за компресиране.
Например, ако една картина има 30 последователни пиксела в зелено,
те могат да бъдат кодирани като "30 зелено",
вместо всеки пиксел да се кодирана отделно.
Такъв процес се нарича run-length encoding.
Тези компресирани формати сами по себе си са написани в двоичен код.
Та дали двоичният код е в основата на всичко компютърно?
Не е задължително.
Има изследвания за тернарни компютри
с вериги с три възможни състояния
и дори квантови компютри,
чиито вериги могат да са в множество състояния едновременно.
Но за сега никой от тях не е осигурил толкова физическа стабилност
за запазване на информация и предаването ѝ.
За сега всичко, което виждаш,
чуваш и четеш на екрана ти,
е резултат от един прост избор - "вярно" или "грешно" -
направен милиони пъти.