Noensinne se galte binære tall og lurer på hva de mente? Noensinne se tall med brev blandet inn og lurer på hva som skjer? Du finner ut alt dette og mer i denne artikkelen. Hexadecimal trenger ikke å være skummelt.
Du vet sikkert sikkert hva et talesystem er - hører du om binære tall eller heksadesimale tall? Enkelt sagt, et talesystem er en måte å representere tall på. Vi er vant til å bruke base-10-nummersystemet, som også kalles desimal. Andre vanlige antall systemer inkluderer base-16 (heksadesimale), base-8 (oktal) og base-2 (binær).
I denne artikkelen vil jeg forklare hva disse forskjellige systemene er, hvordan de skal jobbe med dem, og hvorfor å vite om dem, vil hjelpe deg.
Før vi begynner, la oss prøve litt aktivitet for moro skyld. Det er mange forskjellige måter å representere en farge på, men en av de vanligste er RGB-fargemodellen. Ved hjelp av denne modellen består hver farge av en kombinasjon av forskjellige mengder rød, grønn og blå.
Du lurer kanskje på hvordan fargene er knyttet til antall systemer. Kort sagt, på en datamaskin, lagres en hvilken som helst farge som et stort nummer: en kombinasjon av rød, grønn og blå. (Vi vil gå nærmere inn på dette senere.) Fordi det bare er et nummer, kan det bli representert på flere måter ved hjelp av forskjellige nummersystemer.
Din jobb er å gjette hvor mye rødt, grønt og blått er i bakgrunnsfargen til aktiviteten under. Verdiene for rød, grønn og blå kan variere fra 0 til 255.
Du er velkommen til å bruke de forskjellige tipsene som tilbys for å hjelpe deg. Hvis du ikke forstår de numeriske hintene ennå, ikke noe problem! Du kan se hva gjetningen din ser ut som å bruke Sjekk gjett knapp. Og hvis bakgrunnsfargen skjer for å gjøre teksten vanskelig å lese, trykk Ny farge. Akkurat nå kan det virke vanskelig, men forhåpentligvis ved slutten av artikkelen vil det virke lett.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ... Du har talt i base-10 hele livet ditt. Rask, hva er 7 + 5? Hvis du svarte 12, tenker du på base-10. La oss ta en nærmere titt på hva du har gjort alle disse årene uten å tenke på det.
La oss ta en rask titt på tellingen. Først går du gjennom alle tallene: 0, 1, 2 ... Når du har tastet 9, har du ikke flere sifre til å representere neste nummer. Så du endrer den tilbake til 0, og legger til 1 til tiene tallet, og gir deg 10. Prosessen gjentar igjen og igjen, og til slutt kommer du til 99, der du ikke kan lage noen større tall med to sifre, slik at du Legg til en annen, og gi deg 100.
Selv om det er veldig grunnleggende, bør du ikke overse hva som skjer. Høyest siffer representerer antall, neste siffer representerer antall titalls, neste antall hundrevis, etc.
Forvirret av disse beskrivelsene? Ikke noe problem, la oss visualisere det i stedet. Tenk deg et stort antall, som 2347. Vi kan representere det med to grupper på tusen, tre grupper med hundre, fire grupper på ti og syv individuelle blokker.
Visualisere Base-10 ved hjelp av blokkerBruk verktøyet nedenfor til å skrive ut et tall i sine sammensatte "grupper".
Du har kanskje lagt merke til et mønster nå. La oss se på hva som foregår matematisk, ved hjelp av 2347 som et eksempel.
1000 = 10 * 10 * 10
som også kan skrives som 103
.100 = 10 * 10
eller 102
.10 = 101
.1 = 100
. (Det kan virke rart, men noen tall til kraften til 0 er lik 1, per definisjon.)Dette er i hovedsak definisjonen av base-10. For å få en verdi på et tall i base-10, følger vi bare det mønsteret. Her er noen flere eksempler:
892 = 8 * 102+9 * 101+2 * 100
1147 = 1 * 103+1 * 102+4 * 101+7 * 100
53 = 5 * 101+3 * 100
Ganske vist virker dette alt litt dumt. Vi vet alle hva verdien en base-10 nummer er fordi vi alltid bruker base-10, og det kommer naturlig for oss. Som vi ser snart, skjønt, hvis vi forstår mønstrene i bakgrunnen til base-10, kan vi bedre forstå andre grunnlag.
På til base-8, også kalt oktal. Base-8 betyr bare hva som høres ut: systemet er basert på nummeret åtte (i motsetning til ti). Husk hvordan i base-10 hadde vi ti sifre? Nå, i base-8, er vi begrenset til bare åtte sifre: 0, 1, 2, 3, 4, 5, 6 og 7. Det er ikke noe som 8 eller 9.
Vi teller på samme måte som normalt, med bare åtte sifre. I stedet for en lang forklaring, prøv ganske enkelt demoen nedenfor ved å klikke Telle opp 1 for å se hvordan telling i base-8 fungerer.
Du bør merke et lignende mønster til før; etter at vi kommer til 7, løper vi ut av forskjellige tall for noe høyere tall. Vi trenger en måte å representere åtte av noe. Så legger vi til et annet tall, endrer 7 tilbake til 0, og slutter med 10. Vårt svar på 10 i base-8 representerer nå hva vi normalt ville tenke på som 8 i base-10.
Å snakke om tall skrevet i flere baser kan være forvirrende. For eksempel, som vi nettopp har sett, er 10 i base-8 ikke det samme som 10 i base-10. Så fra dette punktet bruker jeg en standard notasjon der et abonnement angir basen av tall hvis nødvendig. For eksempel ser vår base-8 versjon av 10 nå ut som 108.
(Redaktørens notat: Jeg finner det mye lettere å forstå dette hvis jeg endrer måten jeg leser disse tallene i hodet mitt for. For eksempel, for 108, leser jeg "oktal en-oh" eller "en-oh i base- åtte ". I 1010 leser jeg" desimal one-oh "eller" one-oh i base-ten ".)
Flott, så vi vet 108 representerer åtte elementer. (Du må alltid koble et nummer til det første verktøyet for en visualisering.) Hva er neste nummer etter 778? Hvis du sa 1008, er du riktig. Vi vet fra det vi har lært så langt at de første 7 i 778 representerer grupper på 8, og den andre 7 representerer induktuelle elementer. Hvis vi legger til alle disse, har vi 7 * 8 + 7 * 1 = 63
. Så vi har totalt 6310. Så 778 = 6310. Vi vet alle at 6410 kommer etter 6310.
La oss se på et mere ordentlig eksempel nå. John tilbyr å gi deg 478 informasjonskapsler, og Jane tilbyr å gi deg 4310 cookies. Hvis tilbud tar du? Hvis du vil, gå videre og generer grafikken for 478 grafikk med det første verktøyet. La oss finne ut av basisverdien 10, slik at vi kan ta den beste beslutningen!
Som vi så da vi teller, representerer de fire i 478 antall grupper på åtte. Dette er fornuftig - vi er i base-8. Så totalt sett har vi fire grupper på åtte og syv grupper av en. Hvis vi legger til alle disse, får vi 4 * 8 + 7 * 1 = 3910
. Så, 478 cookies er nøyaktig det samme som 3910 cookies. Janes tilbud virker som det beste nå!
Mønsteret vi så tidligere med base-10, gjelder også her. Vi ser på 5238. Det er fem grupper på 82, to grupper på 81 og tre grupper på 80 (husk, 80= 1). Hvis vi legger til alle disse, 5 * 82 + 2 * 81 + 3 * 80 = 5 * 64 + 2 * 8 + 3 = 339
, vi får 33910 som er vårt siste svar. Diagrammet nedenfor viser det samme visuelt:
Her er et par flere eksempler:
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
Konvertering fra base-10 til base-8 er litt vanskeligere, men likevel grei. Vi må i utgangspunktet reversere prosessen ovenfra. La oss starte med et eksempel: 15010.
Vi finner først den største kraften på 8 som er mindre enn vårt nummer. Her er dette 82 eller 64 (83 er 512). Vi teller hvor mange grupper av 64 vi kan ta fra 150. Dette er 2, så det første sifferet i vårt base-8 nummer er 2. Vi har nå stått for 128 av 150, så vi har 22 igjen.
Den største effekten på 8 som er mindre enn 22 er 81 (det vil si 8). Hvor mange grupper av 8 kan vi ta fra 22? To grupper igjen, og dermed vårt andre siffer er 2.
Til slutt er vi igjen med 6, og kan selvsagt ta 6 grupper av en fra dette, vårt endelige siffer. Vi ender opp med 2268.
Faktisk kan vi få denne prosessen til å berøre klarere med matte. Her er trinnene:
Vårt siste svar er da alle våre ikke-gjenværende siffer eller 226. Legg merke til at vi fremdeles begynner med å dele med den høyeste kraften på 8 som er mindre enn vårt nummer.
Det er viktig å kunne bruke konseptene vi har lært om base-8 og base-10 til en hvilken som helst base. Akkurat som base-8 hadde åtte sifre og base-10 hadde ti sifre, har enhver base samme antall sifre som sin base. Så base-5 har fem sifre (0-4), base-7 har syv siffer (0-6), etc..
La oss nå se hvordan du finner base-10-verdien av et hvilket som helst nummer i en hvilken som helst base. Si at vi jobber i base-b, hvor b kan være noe positivt heltall. Vi har et tall d4d3d2d1d0 hvor hver d er et tall i et tall. (Abonnementene her refererer ikke til basisen til nummeret, men bare skille mellom hvert siffer.) Vår base-10-verdi er rett og slett d4 * b4 + d3 * b3 + d2 * b2 + d1 * b1 + d0 * b0
.
Her er et eksempel: vi har nummer 32311 i base-4. Legg merke til hvordan tallet vårt bare har tall fra null til tre, siden base-4 bare har fire totalt siffer. Vår base-10 verdi er 3 * 44 + 2 * 43 + 3 * 42 + 1 * 41 + 1 * 40 = 3 * 256 + 2 * 64 + 3 * 16 + 1 * 4 + 1 * 1 = 949
. Vi kunne, eller selvfølgelig, følge dette mønsteret med noen siffer i vårt nummer.
Base-16 kalles også heksadesimal. Det brukes ofte i dataprogrammering, så det er veldig viktig å forstå. La oss begynne med å telle i heksadesimale for å sikre at vi kan søke hva vi har lært om andre baser så langt.
Siden vi jobber med base-16, har vi 16 sifre. Så, vi har 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... og yikes! Vi har gått tom for siffer, men vi trenger fortsatt seks flere. Kanskje vi kunne bruke noe som en sirkel 10?
Sannheten er, vi kunne, men dette ville være en smerte å skrive. I stedet bruker vi bare bokstaver i alfabetet, starter med A og fortsetter til F. Her er et bord med alle sifrene i base-16:
Base 16 Ciffer | Verdi |
---|---|
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 | 1. 3 |
E | 14 |
F | 15 |
Annet enn disse ekstra tallene, er hexadecimal akkurat som enhver annen base. For eksempel, la oss konvertere 3D16 til base-10. Etter våre tidligere regler har vi: 3D16 = 3 * 161 + 13 * 160 = 48 + 13 = 61
. Så 3D16 er lik 6110. Legg merke til hvordan vi bruker Ds verdi på 13 i vår beregning.
Vi kan konvertere fra base-10 til base-16 i likhet med måten vi gjorde med base-8. La oss konvertere 69610 til base-16. Først finner vi den største kraften på 16 som er mindre enn 69610. Dette er 162, eller 296. Så:
Vi må erstatte 11 med sin sifferrepresentasjon B, og vi får 2B816.
Du er velkommen til å prøve noen flere konverteringer for å øve. Du kan bruke programmet nedenfor for å sjekke svarene dine:
På den berømte base-2, også kalt binær. Mens alle vet binære består av 0s og 1s, er det viktig å forstå at det ikke er noe annet matematisk enn noen annen base. Det er en gammel spøk som går slik:
"Det er bare 10 typer mennesker i verden: de som forstår binære og de som ikke gjør det."
Kan du finne ut hva det betyr?
La oss prøve noen konverteringer med base-2. Først konverterer vi 1011002 til base-10. Vi har: 101100 = 1 * 25 + 1 * 23 + 1 * 22 = 32 + 8 + 4 = 4410
.
La oss nå konvertere 65 til binær. 26 er den høyeste kraften på 2 mindre enn 65, så:
Og dermed får vi vårt binære nummer, 1000001.
Forståelse binær er super viktig. Jeg har tatt med et bord under for å peke ut sifferverdier.
For eksempel er verdien på 10001 17, som er summen av verdiene for de to 1 sifrene (16 + 1). Dette er ikke noe annet enn det vi har gjort før, det er bare presentert på en enkel måte å lese.
Normalt, når du konverterer mellom to baser som ikke er base-10, ville du gjøre noe slikt:
Det er imidlertid et triks som lar deg konvertere mellom binære og heksadesimale raskt. Først tar du et binært tall og deler sifferene i grupper på fire. Så si at vi har nummeret 10111012. Delet opp har vi 0101 1101. Legg merke til hvordan vi bare kan legge til ekstra nuller på forsiden av den første gruppen for å lage like grupper på 4. Vi finner nå verdien for hver gruppe som om den var sitt eget separate nummer, som gir oss 5 og 13. Til slutt bruker vi bare de tilsvarende heksadesimale sifrene til å skrive ut base-16 nummer, 5D16.
Vi kan også gå i den andre retningen ved å konvertere hvert heksadesimale siffer til fire binære siffer. Prøv å konvertere B716 til binær. Du burde få 101101112.
Dette trikset fungerer fordi 16 er en kraft på 2. Dette betyr at vi bruker lignende triks for base-8, som også er en kraft på 2:
Selvfølgelig kan du reversere prosessen for å gå fra base-8 til binær også.
La oss gå helt tilbake og se på fargegitte spillet.
Når de konverteres til heksadesimale, representerer de to første sifrene mengden rød, de neste to mengden grønt og de to siste mengden blå. Så hvis fargen vår er 17FF1816, kan vi enkelt fortelle at vår røde komponent er 1716 eller 2310. Vår grønne komponent er FF16 eller 25510. Endelig er vår blå komponent 1816 eller 2410. Hvis vi får versjonen 10 av vår farge , 157263210, vi må konvertere den til heksadesimale før vi kan fortelle noe om det.
Prøv spillet igjen, og se hvor mye bedre du kan gjøre!
Forståelse av forskjellige talesystemer er ekstremt nyttig i mange datarelaterte felt. Binær og heksadesimale er svært vanlige, og jeg oppfordrer deg til å bli veldig kjent med dem. Takk for at du leser - jeg håper du har lært mye av denne artikkelen! Hvis du har spørsmål, vennligst spørg dem nedenfor.