Hvad er binært, og hvorfor bruger computere det?
Computere forstår ikke ord eller tal, som mennesker gør. Moderne software gør det muligt for slutbrugeren at ignorere dette, men på de laveste niveauer af din computer er alt repræsenteret af et binært elektrisk signal, der registrerer i et af to tilstande: Til eller fra. For at forstå for komplicerede data skal din computer kode det i binær.
Binary er et base 2 nummer system. Base 2 betyder, at der kun er to cifre-1 og 0-som svarer til de tænd og sluk-stater, din computer kan forstå. Du er formentlig bekendt med base 10-decimalsystemet. Decimalt anvender ti cifre, der spænder fra 0 til 9, og derefter ombrydes for at danne tocifrede tal, hvor hvert ciffer er værd at være ti gange mere end det sidste (1, 10, 100 osv.). Binær er ens, idet hvert ciffer er værd to gange mere end det sidste.
Tæller i binær
I binær er det første ciffer 1 i decimal. Det andet tal er værd 2, det tredje værd 4, det fjerde værd 8, og så videre fordobling hver gang. Hvis du tilføjer disse alle sammen, får du nummeret i decimaltal. Så,
1111 (i binær) = 8 + 4 + 2 + 1 = 15 (i decimal)
Regnskab for 0, dette giver os 16 mulige værdier for fire binære bits. Flyt til 8 bit, og du har 256 mulige værdier. Dette giver meget mere plads til at repræsentere, da fire cifre i decimaltal giver os 10.000 mulige værdier. Det kan virke som om vi går igennem alle disse problemer med at genopfinde vores tælle system bare for at gøre det klunkere, men computere forstår binært meget bedre, end de forstår decimal. Visst, binær optager mere plads, men vi holdes tilbage af hardware. Og for nogle ting, som logisk behandling, er binær bedre end decimal.
Der er et andet basissystem, der også bruges til programmering: hexadecimal. Selvom computere ikke kører på hexadecimal, bruger programmører det til at repræsentere binære adresser i et læseligt format, når de skriver kode. Dette skyldes, at to cifre i hexadecimal kan repræsentere en hel byte, otte cifre i binær. Hexadecimal bruger 0-9 som decimal, og også bogstaverne A til F for at repræsentere de yderligere seks cifre.
Så hvorfor bruger computere binære?
Det korte svar: hardware og fysikkens love. Hvert nummer i din computer er et elektrisk signal, og i de tidlige dage af computeren var elektriske signaler meget sværere at måle og styre meget præcist. Det var mere fornuftigt kun at skelne mellem en "on" stat-repræsenteret af negativ ladning - og en "off" -stat repræsenteret af en positiv ladning. For dem, der er usikre på, hvorfor "off" er repræsenteret ved en positiv ladning, skyldes det, at elektroner har en negativ ladning - flere elektroner betyder mere strøm med en negativ ladning.
Så de tidlige rumstørrelsescomputere brugte binære til at opbygge deres systemer, og selv om de brugte meget ældre, mere omfattende hardware, har vi holdt de samme grundlæggende principper. Moderne computere bruger hvad der er kendt som en transistor til at udføre beregninger med binære. Her er et diagram over, hvordan en felt-effekt transistor (FET) ser ud:
I det væsentlige tillader det kun strøm fra kilden til afløbet, hvis der er en strøm i porten. Dette danner en binær switch. Fabrikanter kan bygge disse transistorer utrolig små helt ned til 5 nanometer eller om størrelsen af to tråde af DNA. Det er sådan, hvordan moderne CPU'er opererer, og selv de kan lide af problemer, som adskiller sig mellem on og off stater (selvom det hovedsagelig skyldes deres uvirkelige molekylstørrelse, er underlagt kvindemekanikens underlige).
Men hvorfor kun base 2?
Så du kan tænke, "hvorfor kun 0 og 1? Kunne du ikke bare tilføje et andet ciffer? "Mens noget af det kommer ned på traditionen i, hvordan computere er bygget, ville tilføjelsen af en anden ciffer betyde, at vi skulle skelne mellem forskellige niveauer af nuværende - ikke bare" off "og" on " , "Men også stater som" på en lille smule "og" på en masse ".
Problemet her er, hvis du ville bruge flere spændingsniveauer, ville du have brug for en måde til nemt at udføre beregninger med dem, og hardwaren til det er ikke levedygtig som erstatning for binær databehandling. Det eksisterer faktisk; den hedder en ternær computer, og den har eksisteret siden 1950'erne, men det er temmelig meget, hvor udviklingen på det stoppede. Ternær logik er langt mere effektiv end binær, men ingen har en effektiv erstatning for binær transistoren, eller i det mindste er der ikke gjort noget arbejde med at udvikle dem på samme ringe skala som binær.
Årsagen til, at vi ikke kan bruge ternær logik, kommer ned på den måde, transistorerne stables i en computer-noget kaldet "porte"-og hvordan de er vant til at udføre matematik. Gates tager to indgange, udfører en operation på dem og returnerer en output.
Dette bringer os til det lange svar: binær matematik er meget lettere for en computer end noget andet. Boolean logik kort nemt til binære systemer, med True og False er repræsenteret ved at tænde og slukke. Gates i din computer opererer på boolsk logik: de tager to indgange og udfører en operation på dem som AND, OR, XOR, og så videre. To indgange er nemme at håndtere. Hvis du skulle grave svarene på hver mulig indgang, ville du have det såkaldte sandhedstabel:
En binær sandhedstabel med boolsk logik vil have fire mulige output for hver grundlæggende operation. Men fordi ternære porte tager tre indgange, ville et ternært sandhedstabellen have 9 eller flere. Mens et binært system har 16 mulige operatører (2 ^ 2 ^ 2), ville et ternært system have 19.683 (3 ^ 3 ^ 3). Skalering bliver et problem, fordi mens ternær er mere effektiv, er det også eksponentielt mere komplekst.
Hvem ved? I fremtiden kunne vi begynde at se at ternære computere bliver en ting, da vi skubber grænserne for binær ned til et molekylært niveau. For nu vil verden fortsætte med at køre på binær.
Billedkreditter: spainter_vfx / Shutterstock, Wikipedia, Wikipedia, Wikipedia, Wikipedia