Har du någonsin sett galna binära nummer och undrar vad de menade? Har du någonsin sett siffror med bokstäverna blandade och undrar vad som händer? Du hittar allt detta och mer i den här artikeln. Hexadecimal behöver inte vara skrämmande.
Du vet förmodligen redan vad ett nummersystem är - hörs någonsin av binära tal eller hexadecimala tal? Enkelt uttryckt är ett nummersystem ett sätt att representera antal. Vi brukar använda bas-10-nummersystemet, som också kallas decimal. Andra vanliga nummersystem inkluderar bas-16 (hexadecimal), bas-8 (oktal) och bas-2 (binär).
I den här artikeln ska jag förklara vad dessa olika system är, hur man arbetar med dem, och varför veta om dem hjälper dig.
Innan vi börjar, låt oss försöka lite aktivitet för skojs skull. Det finns många olika sätt att representera en färg, men en av de vanligaste är RGB-färgmodellen. Med denna modell består varje färg av en kombination av olika mängder av rött, grönt och blått.
Du kanske undrar hur färger hänför sig till nummersystem. Kort sagt, på en dator lagras vilken färg som helst som ett stort antal: en kombination av rött, grönt och blått. (Vi kommer att gå in mer i detalj om detta senare.) Eftersom det bara är ett nummer kan det representeras på flera sätt med olika antal system.
Ditt jobb är att gissa hur mycket rött, grönt och blått är i bakgrundsfärgen på aktiviteten nedan. Värdena för rött, grönt och blått kan variera från 0 till 255.
Använd gärna de olika tips som finns för att hjälpa dig. Om du inte förstår de numeriska tipsen ändå, inget problem! Du kan se vad ditt gissning ser ut som att använda Kontrollera gissning knapp. Och om bakgrundsfärgen råkar göra texten svår att läsa, slå Ny färg. Just nu kan det verka svårt, men förhoppningsvis i slutet av artikeln verkar det lätt.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ... Du har räknat i bas-10 hela ditt liv. Snabbt, vad är 7 + 5? Om du svarade 12 tänker du på bas-10. Låt oss ta en närmare titt på vad du har gjort alla dessa år utan att någonsin tänka på det.
Låt oss ta en snabb titt på räkningen. Först går du igenom alla siffror: 0, 1, 2 ... När du har slagit 9 har du inga fler siffror för att representera nästa nummer. Så byter du tillbaka till 0 och lägger till 1 till tiotalsiffran och ger dig 10. Processen upprepas om och om igen, och så småningom kommer du till 99, där du inte kan göra några större siffror med två siffror, så du lägg till en annan och ge dig 100.
Även om det är helt enkelt, bör du inte förbise vad som händer. Den högsta siffran representerar antalet, nästa siffra representerar antalet tiotal, nästa antal hundratals osv.
Förvirrad av dessa beskrivningar? Inga problem, låt oss visualisera det istället. Tänk dig ett stort antal, som 2347. Vi kan representera det med två grupper på tusen, tre grupper av ett hundra, fyra grupper av tio och sju enskilda block.
Visualisering av Base-10 med hjälp av blockAnvänd verktyget nedan för att mata ut ett nummer i dess sammansatta "grupper".
Du kanske har märkt ett mönster nu. Låt oss titta på vad som händer matematiskt, med hjälp av 2347 som ett exempel.
1000 = 10 * 10 * 10
som också kan skrivas som 103
.100 = 10 * 10
eller 102
.10 = 101
.1 = 100
. (Det kan tyckas konstigt, men några tal till kraften av 0 är lika med 1, per definition.)Detta är i huvudsak definitionen av bas-10. För att få ett värde av ett tal i bas-10 följer vi bara det mönstret. Här är några fler exempel:
892 = 8 * 102+9 * 101+2 * 100
1147 = 1 * 103+1 * 102+4 * 101+7 * 100
53 = 5 * 101+3 * 100
Visserligen verkar allt detta lite dumt. Vi vet alla vad värdet ett bas-10 nummer beror på att vi alltid använder bas-10, och det kommer naturligt för oss. Som vi ser snart, om vi förstår mönstren i bakgrunden till bas-10, kan vi förstå andra baser bättre.
På till bas-8, även kallad oktal. Base-8 betyder precis vad som låter som: systemet är baserat på nummer åtta (i motsats till tio). Kom ihåg hur i bas-10 hade vi tio siffror? Nu i bas 8 är vi begränsade till endast åtta siffror: 0, 1, 2, 3, 4, 5, 6 och 7. Det finns ingen sådan som 8 eller 9.
Vi räknar på samma sätt som normalt, med endast åtta siffror. Istället för en lång förklaring, prova helt enkelt demoen nedan genom att klicka på Räkna upp 1 för att se hur man räknar i bas-8-verk.
Du bör märka ett liknande mönster förut; När vi kommer till 7, rinner vi av olika siffror för något högre antal. Vi behöver ett sätt att representera åtta av någonting. Så vi lägger till en annan siffra, ändra 7 tillbaka till 0 och sluta med 10. Vårt svar på 10 i bas-8 representerar nu vad vi normalt skulle tänka på som 8 i bas-10.
Att prata om siffror skrivna i flera baser kan vara förvirrande. Till exempel, som vi just har sett, är 10 i bas-8 inte densamma som 10 i bas-10. Så, från och med den här tiden använder jag en standardnotation där ett abonnemang anger numrets bas vid behov. Till exempel ser vår bas-8-version av 10 nu ut som 108.
(Redaktörens anteckning: Jag tycker det är mycket lättare att förstå detta om jag ändrar det sätt jag läser dessa nummer i mitt huvud också. Till exempel läser jag "oktal one-oh" eller "one-oh i bas- åtta ". För 1010 läste jag" decimal one-oh "eller" one-oh i bas-ten ".)
Bra, så vi vet 108 representerar åtta saker. (Ställ alltid ett nummer i det första verktyget för visualisering.) Vad är nästa nummer efter 778? Om du sa 1008, är du rätt. Vi vet från vad vi har lärt oss så långt att de första 7 i 778 representerar grupper om 8, och den andra 7 representerar induktiva föremål. Om vi lägger till alla dessa har vi 7 * 8 + 7 * 1 = 63
. Så vi har totalt 6310. Så 778 = 6310. Vi vet alla 6410 kommer efter 6310.
Låt oss nu titta på ett mer ordentligt exempel. John erbjuder dig 478 kakor, och Jane erbjuder dig 4310 cookies. Vilket erbjudande tar du? Om du vill, fortsätt och generera grafiken för 478 grafik med det första verktyget. Låt oss ta reda på dess bas-10-värde så att vi kan fatta det bästa beslutet!
Som vi såg när vi räknade representerar de fyra i 478 antalet grupper på åtta. Det är meningsfullt - vi är i bas 8. Så totalt sett har vi fyra grupper med åtta och sju grupper av en. Om vi lägger till alla dessa får vi 4 * 8 + 7 * 1 = 3910
. Så, 478 cookies är exakt samma som 3910 cookies. Jans erbjudande verkar som det bästa nu!
Mönstret vi såg tidigare med bas-10 gäller här också. Vi tittar på 5238. Det finns fem grupper om 82, två grupper av 81 och tre grupper av 80 (kom ihåg, 80= 1). Om vi lägger till alla dessa, 5 * 82 + 2 * 81 + 3 * 80 = 5 * 64 + 2 * 8 + 3 = 339
, vi får 33910 vilket är vårt sista svar. Diagrammet nedan visar samma sak visuellt:
Här är några fler exempel:
1118 = 1 * 82+1 * 81+1 * 80 = 64 + 8 + 1 = 7310
438 = 4 * 81+3 * 80 = 32 + 3 = 3510
61238 = 6 * 83+1 * 82+2 * 81+3 * 80 = 3072 + 64 + 16 + 3 = 315510
Konvertera från bas-10 till bas-8 är lite knepigare, men ändå rakt. Vi måste i princip vända processen från ovan. Låt oss börja med ett exempel: 15010.
Vi finner först den största kraften av 8 som är mindre än vårt nummer. Här är detta 82 eller 64 (83 är 512). Vi räknar hur många grupper av 64 vi kan ta från 150. Detta är 2, så den första siffran i vårt bas 8-nummer är 2. Vi har nu redogjort för 128 av 150, så vi har 22 kvar.
Den största effekten av 8 som är mindre än 22 är 81 (det vill säga 8). Hur många grupper av 8 kan vi ta från 22? Två grupper igen, och därmed är vår andra siffra 2.
Slutligen är vi kvar med 6 och kan självklart ta 6 grupper av en här, vår sista siffra. Vi hamnar med 2268.
Faktum är att vi kan göra denna process snabbare med matte. Här är stegen:
Vårt sista svar är då alla våra icke-återstående siffror, eller 226. Observera att vi fortfarande börjar med att dividera med högsta effekten av 8 som är mindre än vårt nummer.
Det är viktigt att kunna tillämpa de begrepp vi har lärt oss om bas-8 och bas-10 till vilken bas som helst. Precis som bas-8 hade åtta siffror och bas-10 hade tio siffror, har varje bas samma antal siffror som basen. Så bas-5 har fem siffror (0-4), bas-7 har sju siffror (0-6), etc..
Låt oss nu se hur du hittar bas-10-värdet för ett nummer i vilken bas som helst. Säg att vi arbetar i bas-b, var b kan vara ett positivt heltal. Vi har ett tal d4d3d2d1d0 där varje d är en siffra i ett tal. (Prenumerationerna här refererar inte till basnumret, men skiljer bara varje siffra.) Vårt bas-10-värde är helt enkelt d4 * b4 + d3 * b3 + d2 * b2 + d1 * b1 + d0 * b0
.
Här är ett exempel: vi har numret 32311 i bas-4. Observera hur vårt nummer bara har siffror från noll till tre eftersom bas-4 bara har fyra totala siffror. Vårt bas-10-värde är 3 * 44 + 2 * 43 + 3 * 42 + 1 * 41 + 1 * 40 = 3 * 256 + 2 * 64 + 3 * 16 + 1 * 4 + 1 * 1 = 949
. Vi kunde, eller givetvis, följa detta mönster med några siffror i vårt nummer.
Bas-16 kallas också hexadecimal. Det används ofta i datorprogrammering, så det är väldigt viktigt att förstå. Låt oss börja med att räkna i hexadecimal så att vi kan tillämpa det vi har lärt oss om andra baser hittills.
Eftersom vi arbetar med bas-16 har vi 16 siffror. Så, vi har 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... och yikes! Vi har slutat med siffror, men vi behöver fortfarande sex mer. Kanske kan vi använda något som en cirkel 10?
Sanningen är, vi kan, men det skulle vara en smärta att skriva. Istället använder vi helt enkelt bokstäver i alfabetet, börjar med A och fortsätter till F. Här är ett bord med alla siffror i bas-16:
Bas 16 ciffer | Värde |
---|---|
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
en | 10 |
B | 11 |
C | 12 |
D | 13 |
E | 14 |
F | 15 |
Annat än dessa extra siffror är hexadecimal precis som vilken som helst annan bas. Till exempel, låt oss konvertera 3D16 till bas-10. Efter våra tidigare regler har vi: 3D16 = 3 * 161 + 13 * 160 = 48 + 13 = 61
. Så 3D16 är lika med 6110. Lägg märke till hur vi använder Ds värde av 13 i vår beräkning.
Vi kan konvertera från bas-10 till bas-16 som vi gjorde med bas-8. Låt oss konvertera 69610 till bas-16. Först finner vi den största kraften på 16 som är mindre än 69610. Detta är 162, eller 296. Då:
Vi måste ersätta 11 med sin siffra representation B, och vi får 2B816.
Känn dig fri att prova några fler omvandlingar för övning. Du kan använda ansökan nedan för att kontrollera dina svar:
På den berömda basen 2, även kallad binär. Medan alla vet binär består av 0s och 1s, är det viktigt att förstå att det inte är annorlunda matematiskt än någon annan bas. Det är ett gammalt skämt som går så här:
"Det finns bara 10 typer människor i världen: de som förstår binära och de som inte gör det."
Kan du räkna ut vad det betyder?
Låt oss försöka några omvandlingar med bas-2. Först konverterar vi 1011002 till bas-10. Vi har: 101100 = 1 * 25 + 1 * 23 + 1 * 22 = 32 + 8 + 4 = 4410
.
Låt oss nu konvertera 65 till binärt. 26 är den högsta effekten av 2 mindre än 65, så:
Och så får vi vårt binära nummer, 1000001.
Förstå binär är super viktigt. Jag har tagit med ett bord nedan för att peka ut siffror.
Till exempel är värdet 10001 17, vilket är summan av värdena för de två 1 siffrorna (16 + 1). Det här är inget annat än vad vi gjort tidigare, det presenterades bara på ett lättläst sätt.
Normalt när du konverterar mellan två baser som inte är bas-10, skulle du göra något så här:
Det finns dock ett knep som gör att du snabbt kan konvertera mellan binär och hexadecimal. Ta först några binära nummer och dela siffrorna i grupper om fyra. Så säg att vi har numret 10111012. Uppdelat har vi 0101 1101. Lägg märke till hur vi bara kan lägga till extra nollor i fronten av den första gruppen för att göra jämnt grupper av 4. Vi hittar nu värdet för varje grupp som om det var sitt eget separata nummer, vilket ger oss 5 och 13. Slutligen använder vi helt enkelt de motsvarande hexadecimala siffrorna för att skriva ut bas-16 nummer, 5D16.
Vi kan också gå i andra riktningen genom att konvertera varje hexadecimal siffra till fyra binära siffror. Försök konvertera B716 till binär. Du borde få 101101112.
Detta trick fungerar eftersom 16 är en kraft på 2. Vad betyder det är att vi använder liknande trick för bas-8, vilket också är en kraft på 2:
Naturligtvis kan du vända processen för att gå från bas 8 till binär också.
Låt oss gå hela vägen tillbaka och återfå färggissningsspelet.
När de omvandlas till hexadecimal representerar de två första siffrorna mängden rött, de följande två mängden grönt och de sista två mängden blå. Så om vår färg är 17FF1816 kan vi enkelt berätta att vår röda komponent är 1716 eller 2310. Vår gröna komponent är FF16 eller 25510. Slutligen är vår blå komponent 1816 eller 2410. Om vi får bas-10-versionen av vår färg , 157263210, vi måste konvertera den till hexadecimal innan vi kan berätta något om det.
Testa spelet igen och se hur mycket bättre du kan göra!
Att förstå olika antal system är extremt användbar i många datorrelaterade områden. Binär och hexadecimal är mycket vanliga, och jag uppmuntrar dig att bli mycket bekant med dem. Tack för att du läser - jag hoppas att du har lärt dig mycket av den här artikeln! Om du har några frågor, fråga dem nedan.