Wat is binair en waarom gebruiken computers het?
Computers begrijpen geen woorden of cijfers zoals mensen dat doen. Met moderne software kan de eindgebruiker dit negeren, maar op de laagste niveaus van uw computer wordt alles weergegeven door een binair elektrisch signaal dat zich registreert in een van de twee toestanden: aan of uit. Om ingewikkelde gegevens te begrijpen, moet uw computer deze in binair coderen.
Binair is een basis 2-nummer systeem. Base 2 betekent dat er slechts twee cijfers zijn - 1 en 0 - die overeenkomen met de aan en uit-status die uw computer kan begrijpen. Je bent waarschijnlijk bekend met base 10 - het decimale systeem. Decimaal maakt gebruik van tien cijfers die gaan van 0 tot 9, en loopt dan rond om getallen met twee cijfers te vormen, waarbij elk cijfer tien keer meer waard is dan het vorige (1, 10, 100, etc.). Binair is vergelijkbaar, waarbij elk cijfer twee keer meer waard is dan het vorige.
Tellen in binair getal
In binair getal is het eerste cijfer 1 in decimalen waard. Het tweede cijfer is 2 waard, het derde cijfer 4, het vierde cijfer 8, en dus elke keer een verdubbeling. Als u deze allemaal optelt, krijgt u het getal in decimaal. Zo,
1111 (in binair) = 8 + 4 + 2 + 1 = 15 (in decimaal)
Door 0 te berekenen, geeft dit ons 16 mogelijke waarden voor vier binaire bits. Verplaats naar 8 bits en je hebt 256 mogelijke waarden. Dit neemt veel meer ruimte in beslag, aangezien vier cijfers in decimaal ons 10.000 mogelijke waarden geven. Het lijkt misschien alsof we door al deze moeite heen gaan om ons telsysteem opnieuw uit te vinden, alleen maar om het clunkier te maken, maar computers begrijpen binair veel beter dan ze decimaal begrijpen. Natuurlijk, binair neemt meer ruimte in beslag, maar we worden tegengehouden door de hardware. En voor sommige dingen, zoals logische verwerking, is binair beter dan decimaal.
Er is nog een basissysteem dat ook wordt gebruikt bij het programmeren: hexadecimaal. Hoewel computers niet op hexadecimaal worden uitgevoerd, gebruiken programmeurs het om binaire adressen in een voor mensen leesbaar formaat weer te geven bij het schrijven van code. Dit komt omdat twee cijfers van hexadecimaal een hele byte kunnen voorstellen, acht cijfers in binair getal. Hexadecimaal gebruikt 0-9 als decimaal, en ook de letters A tot en met F voor de extra zes cijfers.
Dus waarom gebruiken computers binair?
Het korte antwoord: hardware en de wetten van de natuurkunde. Elk nummer op uw computer is een elektrisch signaal en in de begintijd van de computer waren elektrische signalen veel moeilijker te meten en zeer nauwkeurig te besturen. Het was zinvoller om alleen onderscheid te maken tussen een "aan" -toestand - vertegenwoordigd door negatieve lading - en een "uit" -toestand - vertegenwoordigd door een positieve lading. Voor degenen die niet zeker weten waarom de "uit" wordt gerepresenteerd door een positieve lading, komt dit omdat elektronen een negatieve lading hebben - meer elektronen betekenen meer stroom met een negatieve lading.
Dus de computers in de vroege ruimte, die binair waren gebruikt om hun systemen te bouwen, en hoewel ze veel oudere, omvangrijkere hardware gebruikten, hebben we dezelfde fundamentele principes behouden. Moderne computers gebruiken wat bekend staat als een transistor om berekeningen met binair uit te voeren. Hier is een diagram van hoe een veldeffecttransistor (FET) eruit ziet:
In wezen staat het alleen stroom toe van de bron naar de afvoer als er een stroom in de poort is. Dit vormt een binaire schakelaar. Fabrikanten kunnen deze transistors ongelooflijk klein bouwen, helemaal tot op 5 nanometer, of ongeveer even groot als twee DNA-strengen. Dit is hoe moderne CPU's werken, en zelfs kunnen ze last hebben van problemen met onderscheid tussen aan en uit toestanden (hoewel dat voornamelijk te wijten is aan hun onwerkelijke moleculaire grootte, omdat ze onderhevig zijn aan de vreemdheid van kwantummechanica).
Maar waarom alleen basis 2?
Dus je denkt misschien: "Waarom alleen 0 en 1? Kun je niet gewoon nog een cijfer toevoegen? "Hoewel sommige iets te maken hebben met traditie in de manier waarop computers worden gebouwd, zou het toevoegen van een ander cijfer betekenen dat we onderscheid moeten maken tussen verschillende niveaus van stroom - niet alleen" uit "en" aan " , "Maar ook staten als" op een klein beetje "en" op veel ".
Het probleem is hier dat als je meerdere niveaus van spanning wilt gebruiken, je een manier nodig hebt om eenvoudig berekeningen met ze uit te voeren, en de hardware daarvoor is niet levensvatbaar als een vervanging voor binair computergebruik. Het bestaat inderdaad; het wordt een ternaire computer genoemd, en het bestaat al sinds de jaren 1950, maar dat is vrijwel waar de ontwikkeling ervan stopte. De logica van Ternary is veel efficiënter dan binair, maar vooralsnog heeft niemand een effectieve vervanging voor de binaire transistor, of op zijn minst is er geen werk gedaan om ze te ontwikkelen op dezelfde kleine schaal als binair.
De reden dat we geen ternaire logica kunnen gebruiken, komt neer op de manier waarop transistors in een computer worden gestapeld - iets dat 'poorten' wordt genoemd-en hoe ze worden gebruikt om wiskunde uit te voeren. Gates neemt twee inputs, voert een bewerking uit en retourneert één output.
Dit brengt ons bij het lange antwoord: binaire wiskunde is veel gemakkelijker voor een computer dan iets anders. Booleaanse logica kan eenvoudig worden toegewezen aan binaire systemen, waarbij Waar en Onschuld worden weergegeven door aan en uit. Poorten in je computer werken op booleaanse logica: ze nemen twee ingangen en voeren een bewerking uit zoals AND, OR, XOR, enzovoort. Twee ingangen zijn eenvoudig te beheren. Als u de antwoorden voor elke mogelijke invoer zou plotten, zou u hebben wat bekend staat als een waarheidstabel:
Een binaire waarheidstabel die werkt op booleaanse logica heeft vier mogelijke uitgangen voor elke fundamentele bewerking. Maar omdat ternaire poorten drie inputs gebruiken, zou een ternaire waarheidstabel 9 of meer hebben. Terwijl een binair systeem 16 mogelijke operatoren (2 ^ 2 ^ 2) heeft, zou een ternair systeem 19.683 (3 ^ 3 ^ 3) hebben. Schalen wordt een probleem, omdat terwijl ternair efficiënter is, het ook exponentieel complexer is.
Wie weet? In de toekomst zouden we kunnen beginnen met het zien van ternaire computers als een ding, omdat we de grenzen van het binaire getal naar een moleculair niveau duwen. Voor nu zal de wereld echter op binair niveau blijven draaien.
Afbeeldingscredits: spainter_vfx / Shutterstock, Wikipedia, Wikipedia, Wikipedia, Wikipedia