Hva er binært, og hvorfor bruker datamaskiner det?
Datamaskiner forstår ikke ord eller tall som menneskene gjør. Moderne programvare gjør det mulig for sluttbrukeren å ignorere dette, men på de laveste nivåene av datamaskinen din, er alt representert av et binært elektrisk signal som registrerer i ett av to tilstander: på eller av. For å forstå for kompliserte data må datamaskinen kodes i binær.
Binary er et base 2 nummer system. Base 2 betyr at det bare er to sifre-1 og 0-som samsvarer med på og av tilstandene datamaskinen kan forstå. Du er sikkert kjent med base 10-desimalsystemet. Decimal bruker ti sifre som varierer fra 0 til 9, og pakkes rundt for å danne tos sifre tall, idet hvert siffer er verdt ti ganger mer enn det siste (1, 10, 100, etc.). Binær er lik, idet hvert siffer er verdt to ganger mer enn det siste.
Teller i binær
I binær er det første sifferet verdt 1 i desimal. Det andre sifferet er verdt 2, den tredje verdien 4, den fjerde verdien 8, og så videre-dobling hver gang. Hvis du legger til alle disse, får du nummeret i desimal. Så,
1111 (i binær) = 8 + 4 + 2 + 1 = 15 (i desimal)
Regnskap for 0 gir oss 16 mulige verdier for fire binære biter. Flytt til 8 biter, og du har 256 mulige verdier. Dette tar opp mye mer plass til å representere, da fire sifre i desimal gir oss 10.000 mulige verdier. Det kan virke som om vi går gjennom all denne vanskeligheten med å gjenoppfinne vårt tellingsystem bare for å gjøre det clunkier, men datamaskiner forstår binær mye bedre enn de forstår desimal. Visst, binært tar opp mer plass, men vi holdes tilbake av maskinvaren. Og for noen ting, som logikkbehandling, binær er bedre enn desimal.
Det er et annet basissystem som også brukes i programmering: heksadesimale. Selv om datamaskiner ikke kjører på heksadesimale, bruker programmører det til å representere binære adresser i et lesbart format når de skriver kode. Dette skyldes at to siffer i heksadesimale kan representere en hel byte, åtte sifre i binær. Hexadecimal bruker 0-9 som desimal, og også bokstavene A til F for å representere de ytterligere seks sifrene.
Så hvorfor bruker datamaskiner binær?
Det korte svaret: maskinvare og fysikkloven. Hvert nummer i datamaskinen er et elektrisk signal, og i de tidlige dagene av databehandling var elektriske signaler mye vanskeligere å måle og kontrollere veldig nøyaktig. Det var mer sanselig å bare skille mellom en "on" state-representert av negativ ladning og en "off" state-representert av en positiv ladning. For de som er usikre på hvorfor "off" representeres av en positiv ladning, er det fordi elektroner har en negativ ladning - flere elektroner betyr mer strøm med negativ ladning.
Så brukte de tidlige romstørrelsen datamaskiner binær til å bygge sine systemer, og selv om de brukte mye eldre, større maskinvare, har vi holdt de samme grunnleggende prinsippene. Moderne datamaskiner bruker det som er kjent som en transistor for å utføre beregninger med binær. Her er et diagram over hvordan en felt-effekt transistor (FET) ser ut som:
I hovedsak tillater det bare strømmen fra kilden til avløpet hvis det er strøm i porten. Dette danner en binær bryter. Produsenter kan bygge disse transistorene utrolig små helt ned til 5 nanometer, eller om størrelsen på to tråder av DNA. Dette er hvordan moderne CPUer opererer, og selv de kan lider av problemer som skiller mellom på og av stater (selv om det hovedsakelig skyldes deres uvirkelige molekylstørrelse, er underlagt kvelden av kvantemekanikken).
Men hvorfor bare base 2?
Så du kan tenke, "hvorfor bare 0 og 1? Kunne du ikke bare legge til et annet siffer? "Mens noe av det kommer ned på tradisjonen i hvordan datamaskiner er bygget, vil å legge til et annet siffer bety at vi må skille mellom ulike nivåer av nåværende, ikke bare" av "og" på " , "Men også stater som" på litt "og" på mye. "
Problemet her er at hvis du vil bruke flere nivåer av spenning, vil du trenge en måte å enkelt utføre beregninger med, og maskinvaren for det er ikke levedyktig som erstatning for binær databehandling. Det eksisterer faktisk; det kalles en ternær datamaskin, og den har eksistert siden 1950-tallet, men det er ganske mye der utviklingen på den stoppet. Ternær logikk er langt mer effektiv enn binær, men ingen har en effektiv erstatning for binær transistoren, eller i det minste ingen arbeid har blitt gjort på å utvikle dem på de samme små skalaene som binære.
Grunnen til at vi ikke kan bruke ternær logikk kommer ned til måten transistorene stables på i en datamaskin-noe som kalles "porter"-og hvordan de er vant til å utføre matte. Gates tar to innganger, utfører en operasjon på dem, og returnerer en utgang.
Dette bringer oss til det lange svaret: binær matte er langt enklere for en datamaskin enn noe annet. Boolsk logikk kartlegges enkelt til binære systemer, med True og False blir representert av og av. Gates i datamaskinen din opererer på boolsk logikk: de tar to innganger og utfører en operasjon på dem som AND, OR, XOR, og så videre. To innganger er enkle å administrere. Hvis du skulle tegne svarene for hver mulig inngang, ville du ha det som er kjent som et sannhetstabell:
En binær sannhetstabel som opererer på boolsk logikk, vil ha fire mulige utganger for hver grunnleggende operasjon. Men fordi ternære portene tar tre innganger, ville et ternært sannhetstabell ha 9 eller flere. Mens et binært system har 16 mulige operatører (2 ^ 2 ^ 2), ville et ternært system ha 19 683 (3 ^ 3 ^ 3). Skalering blir et problem fordi mens ternær er mer effektiv, er det også eksponentielt mer komplekst.
Hvem vet? I fremtiden kan vi begynne å se at ternære datamaskiner blir en ting, da vi skyver grensene for binær ned til et molekylært nivå. For nå, vil verden fortsette å kjøre på binær.
Bildekreditter: spainter_vfx / Shutterstock, Wikipedia, Wikipedia, Wikipedia, Wikipedia