Människor tillbringade de senaste fem och ett halvt årtusendena med att uppfinna över 100 olika sätt att skriva ner siffror. Med vederbörlig respekt för romerska siffror är världens favoritteknik just nu – med stor marginal – det moderna decimalsystemet. Dess användare kan uttrycka vilket heltal de vill med bara 10 små tecken:0, 1, 2, 3, 4, 5, 6, 7, 8 och 9.
Din dator tar dock ett annat tillvägagångssätt. Bärbara datorer, smartphones och andra enheter är beroende av binär kod. Ett matematiskt språk, binärt reläer instruktioner till dessa högteknologiska prylar. Den talar om för din dator hur en podcasters röst låter, vilka färger som ska visas i en YouTube-video och hur många bokstäver som användes i det e-postmeddelandet som din chef just skickade.
Binär kod lever upp till sitt namn. Till skillnad från decimaltalssystemet använder det bara två siffror, som programmerare kallar "bitar". Vanligtvis finns det "0" och det finns "1". Och det är allt. Lyckligtvis visar vi dig hur du konverterar ett binärt tal till det mer bekanta decimalsystemet. Sedan, som en bra trollkarl, kommer vi att göra precis tvärtom, och föra decimalen till binärt värde.
Att förstå positionsbeteckning är nyckeln för att hantera både talsystemen och omvandlingarna. Varje siffra spelar sin roll i beräkningen, från den mest signifikanta biten till den minst signifikanta biten. Tekniskt sett är 0 och 1 de enda bitarna du behöver för att skriva binära tal. Men för att göra vettigt av dem måste du förstå ett tredje värde:2.
Det är bäst om vi förklarar detta som exempel. Siffran 138 är korrekt uttryckt i binär kod som "10001010 ." Hur kan din dator tala om att denna uppenbara sträng av nonsens betyder "138"? Programmering är en del av svaret. Någon har informerat din enhet om att - i det här fallet - den binära koden stavar ut ett nummer istället för ett skrivet ord eller en mening; det finns en separat metod för att avkoda den senare.
När detta grundläggande faktum är fastställt fungerar koden genom att tilldela en annan exponent på 2 till varje enskild bit (dvs varje nolla och varje 1). En exponent är ett värde multiplicerat med sig självt ett visst antal gånger. Så, 2 till tredje potens, skrivet som 2 3 , är 2 x 2 x 2, vilket motsvarar 8.
Vänligen njut av följande krafter i 2-listan. Lita på oss, du vill se över det här snart.
2 =1
2 1 =2
2 2 =4
2 3 =8
2 4 =16
2 5 =32
2 6 =64
2 7 =128
2 8 =256
2 9 =512
2 10 =1024
Låt oss nu gå tillbaka till vårt ursprungliga binära nummer:10001010. Om engelska är ditt modersmål, sätt på dig, eftersom du är på väg att kämpa mot dina instinkter. Se, skriven engelska läses från vänster till höger. Men nu måste vi bryta ner det binära talet genom att gå i motsatt riktning:från höger till vänster.
I vilket binärt tal som helst måste biten som är längst till höger multipliceras med 2. Sedan multipliceras den omedelbart till vänster med 2 1 . Därefter biten till till vänster multipliceras med 2 2 . Och så vidare. Lägger du märke till ett mönster här? De individuella exponenterna för 2 används i stigande ordning, från höger till vänster .
OK, så nu är vårt jobb att hålla det mönstret igång tills vi har matchat en exponent på 2 till varje bit — varenda 0 och 1 — i det binära talet. Vi slutar när den sista biten, den längst till vänster, har multiplicerats med lämplig exponent för 2.
Ett användbart sätt att hålla dina figurer raka är att fysiskt rada upp exponenterna över deras motsvarande binära bitar på ett pappersark. Helst ska det se ut ungefär så här:
Bra grejer. Okej, låt oss nu återgå till den faktiska binära till decimalkonverteringen. Eftersom 10001010 innehåller 8 individuella bitar, kommer vi att göra 8 separata multiplikationsproblem. Låt oss börja med 0:an längst till höger. Vad är 0 x 2? Rätt svar är 0.
Ett problem kvar, sju kvar. Flytta ett mellanslag åt vänster. Ser du "1" där? Tja, 1 x 2 1 =2. Flytta nu ytterligare ett mellanslag åt vänster. Om du gör det får du 0 x 2 2 , vilket är lika med 0. Om du fortsätter att använda det här mönstret och fortsätter från siffran längst till höger till siffran längst till vänster, kommer du att se det här:
0 x 2 =0
1 x 2 1 =2
0 x 2 2 =0
1 x 2 3 =8
0 x 2 4 =0
0 x 2 5 =0
0 x 2 6 =0
1 x 2 7 =128
Vänta, vi är nästan i mål! Ta resultaten av alla dessa multiplikationsproblem och addera dem. Inte multiplicera, lägg till . Smart? Vad är 0 + 2 + 0 + 8 + 0 + 0 + 0 + 128 lika med?
Innan vi svarar på det, låt oss bli av med alla dessa nollor. Vi behöver dem inte i ett tilläggsproblem. Allt vi egentligen behöver göra är att lösa detta pussel:2 + 8 + 128 =? Gissa vad? Det slutliga svaret är 138 . Grattis, vi har nått en cirkel! Gå och ta ett segervarv.
Observera att 138 är ett heltal. Det finns en teknik för att konvertera tal med en bråkdel, som 0,25 och 3,14, till binära. Men fullständigt avslöjande:Det är lite komplicerat. Om det inte stör dig och du vill veta mer, erbjuder Institute of Electrical and Electronics Engineers (IEEE) en standardiserad konverteringsmetod.
Efter att ha ändrat "10001010" till "138" är det dags att vända på vår process. Anta att du hade börjat med 138 och var tvungen att konvertera den till binär. Hur skulle du göra det? Återigen, exponenter är nyckeln till hela stöket.
Ta en ny titt på vår "powers of 2"-lista. Hitta det värde som kommer närmast 138 utan att överskrida det . En snabb omläsning säger oss 138 sittningar mellan 256 (vilket är 2 8 ) och 128 (det är 2 7 ). Nu ska vi subtrahera 128 från 138. Här är ekvationen:138 - 128 =10
Ta sedan den 10:an och titta på exponentlistan ytterligare en gång. Potensen av 2 som kommer närmast att vara lika med 10 är 2 3 , eller 8. Så vid det här laget är vårt jobb att subtrahera 8 från 10. Så här:10 - 8 =2. Och vad vet du? Siffran 2 är lika med 2 1 . Denna process gav oss tre viktiga siffror:128, 8 och 2. Vårt nästa mål är att lägga ihop dem:128 + 8 + 2 =138.
Hitta ett papper om du inte redan har gjort det. Skriv ut värdet för varje exponent av 2 som börjar med "128" (kom ihåg att det är 2 7 ) och "1" (som är lika med 2). Gör detta i fallande ordning från vänster till höger . Och se till att lämna lite mellanslag mellan varje nummer.
Din klottring ska se ut så här:128 64 32 16 8 4 2 1. Som du kan se finns det åtta individuella värden listade här. Rita en nedåtriktad pil (↓) under varje värde. Se sedan additionsproblemet som vi skrev ner ovan, det som säger 128 + 8 + 2 =138.
Ser du ett "128" i det problemet? Om så är fallet, skriv en "1" under motsvarande pil. Finns det ett "64" skrivet i ekvationen? Nej! Så under den pilen kommer vi att skriva en "0". Håll dig till samma mönster så får du detta:
Ser bekant ut? Vi har 10001010 kvar — och som vi redan har konstaterat betyder det "138." Så där går du. I kort ordning har du lärt dig det binära talsystemet, decimalmotsvarigheten och hur du slutför omvandlingen av binär till decimal. Sedan har du använt decimaltalssystemet för att ringa dig tillbaka till endast två siffror. Vår ökända magiker har fått kaninen att försvinna och fört tillbaka den igen. Morötter runt om!
Den populära sci-fi-komediserien "Futurama" älskar sig själv några matteskämt. I avsnittet "The Honking" av säsong två, blir en hemsökt herrgård övergiven till den fula roboten Bender Bending Rodriguez. När han går in, är han livrädd för att upptäcka ett hemligt binärt meddelande som lyder "1010011010." Kanske hade Bender rätt i att vara rädd; i decimalform, vilket översätts till "666."