Какво е двоично, и защо компютрите го използват?
Компютрите не разбират думи или числа по начина, по който хората правят това. Съвременният софтуер позволява на крайния потребител да игнорира това, но на най-ниските нива на компютъра, всичко е представено от двоичен електрически сигнал, който се регистрира в едно от двете състояния: включен или изключен. За да осмислите сложни данни, вашият компютър трябва да го кодира в двоичен формат.
Двоичната е базова 2-цифрова система. База 2 означава, че има само две цифри-1 и 0, които съответстват на състоянията, които компютърът може да разбере. Вероятно сте запознати с основната десетична система. Десетичната стойност използва десет цифри, които варират от 0 до 9 и след това се увиват, за да образуват двуцифрени числа, като всяка цифра е на стойност десет пъти повече от последната (1, 10, 100 и т.н.). Binary е подобен, като всяка цифра струва два пъти повече от последната.
Преброяване в двоичен
В двоичен код първата цифра е 1 в десетичната запетая. Втората цифра е на стойност 2, третата - на 4, на четвъртата - на 8, и така всеки път се удвоява. Добавянето на всички тези числа ви дава числото в десетичната запетая. Така,
1111 (в двоичен) = 8 + 4 + 2 + 1 = 15 (в десетичен знак)
Отчитайки 0, това ни дава 16 възможни стойности за четири двоични битове. Преместете се на 8 бита и имате 256 възможни стойности. Това отнема много повече място за представяне, тъй като четири цифри в десетичната запетая ни дават 10 000 възможни стойности. Може да изглежда, че преминаваме през всичките тези неприятности, за да преоткрием нашата система за броене, само за да го направим по-леко, но компютрите разбират двоичната система много по-добре, отколкото разбират десетично. Разбира се, бинарните заемат повече място, но ние сме задържани от хардуера. А за някои неща, като обработка на логиката, двоичното е по-добро от десетичната.
Има и друга основна система, която също се използва в програмирането: шестнадесетична. Въпреки че компютрите не се изпълняват с шестнадесетичен код, програмистите го използват за представяне на двоични адреси в четлив за човека формат при писане на код. Това е така, защото две цифри от шестнадесетичен могат да представляват цял байт, осем цифри в двоичен. Шестнадесетичната използва 0-9 като десетична, а буквите от А до F представляват още шест цифри.
Защо компютрите използват двоичен?
Краткият отговор: хардуер и закони на физиката. Всеки номер в компютъра е електрически сигнал, а в първите дни на компютрите електрическите сигнали бяха много по-трудни за измерване и контрол много точно. По-разумно е да се прави разлика само между „включено“ състояние, представено от отрицателен заряд, и „изключено“ състояние, представено от положителен заряд. За тези, които не са сигурни защо "изключено" е представено от положителен заряд, това е така, защото електроните имат отрицателен заряд - повече електрони означават повече ток с отрицателен заряд.
Така че, ранните компютри с големи размери използваха двоични системи, за да изградят своите системи, и въпреки че използваха много по-стар, по-обемист хардуер, ние запазихме същите основни принципи. Съвременните компютри използват това, което е известно като транзистор за извършване на изчисления с двоичен. Ето диаграма на това как изглежда полевият транзистор (FET):
По същество, той позволява само ток да тече от източника към изтичането, ако има ток в портата. Това образува двоичен превключвател. Производителите могат да изградят тези транзистори невероятно малки - по целия път до 5 нанометра, или около размера на две нишки от ДНК. Ето как работят модерните процесори и дори те могат да страдат от проблеми, различаващи състояния на включване и изключване (макар че това се дължи най-вече на нереалния им размер, тъй като са подвластни на странността на квантовата механика)..
Но защо само база 2?
Така че може би си мислите, „защо само 0 и 1? Не може ли просто да добавите още една цифра? ”Докато част от нея се свежда до традицията в това как се изграждат компютрите, да се добави още една цифра ще означава, че трябва да правим разлика между различни нива на ток - не само„ изключено “и„ на “ , “Но също така посочва като„ на малко “и„ на много “.
Проблемът тук е, че ако искате да използвате няколко нива на напрежение, ще ви е необходим начин лесно да извършвате изчисления с тях, а хардуерът за това не е жизнеспособен като заместител на двоичните изчисления. Тя наистина съществува; той се нарича трикомпонентен компютър, и той е бил наоколо от 1950-те години, но това е мястото, където развитието върху него спря. Тройната логика е по-ефективна от двоичната, но все още никой няма ефективен заместител на двоичния транзистор, или поне не е свършена работа по разработването им в една и съща малка скала като двоичен..
Причината, поради която не можем да използваме тройна логика, се свежда до начина, по който транзисторите са подредени в компютър - нещо, наречено "портали"-и как се използват за извършване на математика. Гейтс взема два входа, извършва операция върху тях и връща един изход.
Това ни води до дългия отговор: двоичната математика е по-лесна за компютър от всичко друго. Булевата логика лесно се изобразява на двоични системи, като True и False са представени чрез включване и изключване. Вратите във вашия компютър работят с логическа логика: те вземат два входа и изпълняват операция върху тях като И, ИЛИ, XOR и т.н. Лесно се управляват два входа. Ако графиката на отговорите е за всеки възможен вход, ще имате това, което е известно като таблица на истината:
Бинарната таблица на истината, работеща на логическа логика, ще има четири възможни изхода за всяка основна операция. Но тъй като трикомпонентните врати приемат три входа, една тройна таблица на истината ще има 9 или повече. Докато двоичната система има 16 възможни оператора (2 ^ 2 ^ 2), една трикомпонентна система би имала 19,683 (3 ^ 3 ^ 3). Мащабирането се превръща в проблем, защото докато тройна е по-ефективна, тя също е експоненциално по-сложна.
Кой знае? В бъдеще бихме могли да започнем да виждаме трикомпонентните компютри да се превръщат в нещо, като тласкаме границите на двоичните до молекулярно ниво. Засега обаче светът ще продължи да работи по двоичен.
Кредити за изображения: spainter_vfx / Shutterstock, Уикипедия, Уикипедия, Уикипедия, Уикипедия