Hemsida » hur » Vad är binärt och varför använder datorer det?

    Vad är binärt och varför använder datorer det?

    Datorer förstår inte ord eller siffror som människor gör. Moderna programvaran gör det möjligt för slutanvändaren att ignorera detta, men på de lägsta nivåerna av din dator representeras allt av en binär elektrisk signal som registrerar sig i ett av två tillstånd: På eller av. För att få mening om komplicerad data måste datorn koda den i binär.

    Binär är ett bas 2-tal system. Bas 2 betyder att det bara finns två siffror-1 och 0-som motsvarar de på och av-tillstånd som datorn kan förstå. Du är förmodligen bekant med bas 10-decimalsystemet. Decimalt använder sig av tio siffror som sträcker sig från 0 till 9, och sveper sedan runt för att bilda tvåsiffriga nummer, varvid varje siffra är värd tio gånger mer än den sista (1, 10, 100, etc.). Binär är liknande, med varje siffra värd två gånger mer än den sista.

    Räkna i binär

    I binär är den första siffran värd 1 i decimal. Den andra siffran är värd 2, den tredje värdet 4, den fjärde värdet 8, och så vidare fördubbling varje gång. Om du lägger till alla dessa ger du numret i decimal. Så,

    1111 (i binär) = 8 + 4 + 2 + 1 = 15 (i decimal)

    Redovisning för 0 ger oss 16 möjliga värden för fyra binära bitar. Flytta till 8 bitar, och du har 256 möjliga värden. Detta tar upp mycket mer utrymme att representera, eftersom fyra siffror i decimal ger oss 10 000 möjliga värden. Det kan tyckas att vi går igenom allt detta problem att uppfinna vårt räkningssystem bara för att göra det clunkier, men datorer förstår binär mycket bättre än de förstår decimal. Visst, binär tar upp mer utrymme, men vi hålls tillbaka av hårdvaran. Och för vissa saker, som logikbehandling, är binär bättre än decimal.

    Det finns ett annat bassystem som också används i programmering: hexadecimal. Även om datorer inte körs på hexadecimal, använder programmerare den för att representera binära adresser i ett läsbart format när man skriver kod. Detta beror på att två siffror i hexadecimal kan representera en hel byte, åtta siffror i binär. Hexadecimal använder 0-9 som decimal, och även bokstäverna A till F för att representera ytterligare sex siffror.

    Så varför använder datorer binära?

    Det korta svaret: hårdvara och fysikens lagar. Varje nummer i din dator är en elektrisk signal, och i de tidiga dagarna av beräkningen var elektriska signaler mycket svårare att mäta och styra mycket exakt. Det var mer meningsfullt att bara skilja mellan en "on" state-representativ av negativ laddning och en "off" state-representativ av en positiv laddning. För dem som är osäkra på varför "off" representeras av en positiv laddning beror det på att elektroner har en negativ laddning - fler elektroner betyder mer ström med negativ laddning.

    Så de tidiga rumstora datorerna använde binära för att bygga sina system, och trots att de använde mycket äldre, hårdare hårdvara har vi behållit samma grundläggande principer. Moderna datorer använder det som är känt som en transistor för att utföra beräkningar med binära. Här är ett diagram över hur en fälteffekttransistor (FET) ser ut:

    I grunden tillåter det bara strömmen att strömma från källan till avloppet om det finns en ström i porten. Detta bildar en binär omkopplare. Tillverkare kan bygga dessa transistorer oerhört små hela vägen ner till 5 nanometer, eller om storleken på två DNA-strängar. Det här är hur moderna processorer fungerar, och även de kan lida av problem som skiljer sig mellan på och av stater (även om det främst beror på deras orealistiska molekylstorlek, som är föremål för quantummekanikens konstighet).

    Men varför bara bas 2?

    Så du kanske tänker, "varför bara 0 och 1? Kunde du inte bara lägga till en annan siffra? "Medan en del av det kommer till tradition i hur datorer byggs, skulle det vara nödvändigt att skilja mellan olika nivåer av nuvarande, inte bara" av "och" på " , "Men också stater som" på lite "och" mycket ".

    Problemet här är att om du vill använda flera nivåer av spänning, skulle du behöva ett sätt att enkelt utföra beräkningar med dem, och hårdvaran för det är inte lönsam som ersättning för binär databehandling. Det finns faktiskt det kallas en ternär dator, och det har funnits sedan 1950-talet, men det är ganska mycket där utvecklingen på det stoppade. Ternary logic är mycket effektivare än binär, men från och med nu har ingen en effektiv ersättning för binär transistorn, eller åtminstone har inget arbete gjorts på att utveckla dem i samma liten skala som binär.

    Anledningen till att vi inte kan använda ternär logik kommer ner till hur transistorer staplas i en dator-något som kallas "grindar"-och hur de är vana vid matematik. Gates tar två ingångar, utför en operation på dem och returnerar en utgång.

    Detta ger oss det långa svaret: binär matte är väldigt lättare för en dator än vad som helst annat. Boolean logik kartlägger lätt till binära system, med True och False representeras av och av. Gates i din dator fungerar på booles logik: de tar två ingångar och utför en operation på dem som AND, OR, XOR, och så vidare. Två ingångar är lätta att hantera. Om du skulle gradera svaren för varje inmatning, skulle du ha det som kallas ett sanningstabell:

    En binär sanningstabell som arbetar med boolesk logik har fyra möjliga utgångar för varje grundläggande operation. Men eftersom ternära grindar tar tre ingångar, skulle ett ternärt sanningstabell ha 9 eller mer. Medan ett binärt system har 16 möjliga operatörer (2 ^ 2 ^ 2) skulle ett ternärt system ha 19 683 (3 ^ 3 ^ 3). Skalning blir ett problem eftersom det är mer effektivt än ternärt, det är också exponentiellt mer komplext.

    Vem vet? I framtiden kan vi börja se att ternära datorer blir en sak, eftersom vi trycker gränserna för binära ner till en molekylär nivå. För nu kommer dock världen fortsätta att springa på binär.

    Bildkrediter: spainter_vfx / Shutterstock, Wikipedia, Wikipedia, Wikipedia, Wikipedia