Number Systems een inleiding tot binair, hexadecimaal en meer

Heb je ooit gekke binaire getallen gezien en vraag je je af wat ze betekenden? Heb je ooit cijfers gezien waarin letters zijn ingemengd en vraag je je af wat er aan de hand is? U zult dit en meer in dit artikel te weten komen. Hexadecimaal hoeft niet eng te zijn.


Introductie: Wat is een nummerensysteem?

Je weet waarschijnlijk al wat een getalsysteem is - ooit gehoord van binaire getallen of hexadecimale getallen? Simpel gezegd, een getallensysteem is een manier om getallen weer te geven. We zijn gewend aan het gebruik van het basis-10-nummer systeem, dat ook decimaal wordt genoemd. Andere veelgebruikte nummersystemen zijn basis-16 (hexadecimaal), basis-8 (octaal) en basis-2 (binair).

In dit artikel zal ik uitleggen wat deze verschillende systemen zijn, hoe je ermee kunt werken en waarom meer weten over hen je kan helpen.


Activiteit

Voordat we aan de slag gaan, proberen we een beetje activiteit voor de lol. Er zijn veel verschillende manieren om een ​​kleur weer te geven, maar een van de meest voorkomende is het RGB-kleurmodel. Met dit model bestaat elke kleur uit een combinatie van verschillende hoeveelheden rood, groen en blauw.

U vraagt ​​zich misschien af ​​hoe kleuren zich verhouden tot getalsystemen. Kortom, op een computer wordt elke kleur opgeslagen als een groot aantal: een combinatie van rood, groen en blauw. (We zullen hier later meer in detail op ingaan.) Omdat het slechts een nummer is, kan het op verschillende manieren worden weergegeven met behulp van verschillende nummer systemen..

Je taak is om te raden hoeveel rood, groen en blauw de achtergrondkleur van de onderstaande activiteit bevat. De waarden voor rood, groen en blauw kunnen variëren van 0 tot 255.

Voel je vrij om de verschillende hints te gebruiken om je te helpen. Als je de numerieke hints nog niet begrijpt, geen probleem! U kunt zien hoe uw schatting eruit ziet met behulp van de Controleer Guess knop. En als de achtergrondkleur de tekst moeilijk leesbaar maakt, druk dan op Nieuwe kleur. Op dit moment lijkt het misschien lastig, maar hopelijk aan het einde van het artikel zal het gemakkelijk lijken.

Kijken naar Base-10

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ... Je hebt je hele leven in base-10 gerekend. Snel, wat is 7 + 5? Als je 12 hebt geantwoord, denk je in base-10. Laten we eens kijken wat je al die jaren hebt gedaan, zonder er ooit over na te denken.

Laten we even naar tellen kijken. Eerst doorloop je alle cijfers: 0, 1, 2 ... Zodra je 9 hebt geraakt, heb je geen cijfers meer om het volgende nummer te vertegenwoordigen. Dus verander je het terug naar 0 en voeg je 1 toe aan de tientallen, en krijg je 10. Het proces herhaalt zich keer op keer en uiteindelijk kom je op 99, waar je geen grotere getallen kunt maken met twee cijfers, dus je voeg een andere toe, die je 100 geeft.

Hoewel dat allemaal erg basic is, moet je niet vergeten wat er aan de hand is. Het meest rechtse cijfer vertegenwoordigt het aantal, het volgende cijfer staat voor het aantal tientallen, het volgende aantal voor honderden, enzovoort.


Visualisatie van Base-10

Verward door deze beschrijvingen? Geen probleem, laten we het in plaats daarvan visualiseren. Stel je een groot aantal voor, zoals 2347. We kunnen dat voorstellen met twee groepen van duizend, drie groepen van honderd, vier groepen van tien en zeven individuele blokken.

Visualisatie van Base-10 met blokken

Gebruik de onderstaande tool om een ​​nummer in de samengestelde "groepen" uit te voeren.

Base-10 Wiskundig

Je hebt nu misschien een patroon opgemerkt. Laten we eens kijken naar wat er gebeurt wiskundig, met behulp van 2347 als een voorbeeld.

  • Zoals je zag, zijn er 2 groepen van duizend. Niet toevallig, 1000 = 10 * 10 * 10 welke ook kan worden geschreven als 103.
  • Er zijn 3 groepen van honderd. Nogmaals, niet toevallig, 100 = 10 * 10 of 102.
  • Er zijn 4 groepen van tien, en, 10 = 101.
  • Ten slotte zijn er 7 groepen van één, en 1 = 100. (Dat lijkt misschien raar, maar ieder aantal tot de macht van 0 is gelijk aan 1, per definitie.)

Dit is in wezen de definitie van base-10. Om een ​​waarde van een getal in base-10 te krijgen, volgen we eenvoudig dat patroon. Hier zijn nog enkele voorbeelden:

  • 892 = 8 * 102+9 * 101+2 * 100
  • 1147 = 1 * 103+1 * 102+4 * 101+7 * 100
  • 53 = 5 * 101+3 * 100

Toegegeven, dit lijkt allemaal een beetje dwaas. We weten allemaal welke waarde een base-10-nummer is, omdat we altijd base-10 gebruiken, en dat komt van nature voor ons. Zoals we echter snel zullen zien, kunnen we andere basen beter begrijpen als we de patronen op de achtergrond van base-10 begrijpen.


Base-8

Op naar basis-8, ook wel octaal genoemd. Base-8 betekent precies hoe het klinkt: het systeem is gebaseerd op het cijfer acht (in plaats van tien). Weet je nog hoe we in base-10 tien cijfers hadden? Nu, in basis-8, zijn we beperkt tot slechts acht cijfers: 0, 1, 2, 3, 4, 5, 6 en 7. Er bestaat niet zoiets als 8 of 9.

We tellen op dezelfde manier als we normaal zouden doen, behalve met slechts acht cijfers. In plaats van een lange uitleg, kunt u de demo hieronder uitproberen door op te klikken Tel op 1 om te zien hoe het tellen in base-8 werkt.

Je zou een gelijkaardig patroon moeten opmerken als voorheen; nadat we bij 7 komen, hebben we geen andere cijfers meer voor een hoger nummer. We hebben een manier nodig om acht van iets te representeren. Dus voegen we nog een cijfer toe, veranderen we de 7 terug naar 0 en eindigen we met 10. Ons antwoord van 10 in basis-8 vertegenwoordigt nu wat we normaal zouden denken als 8 in basis-10.

Praten over getallen geschreven in meerdere bases kan verwarrend zijn. Zoals we zojuist hebben gezien, is 10 in base-8 bijvoorbeeld niet hetzelfde als 10 in base-10. Dus vanaf dit punt gebruik ik een standaardnotatie waarbij een subscript de basis van cijfers aangeeft als dat nodig is. Onze basis-8-versie van 10 ziet er bijvoorbeeld nu uit als 108.

(Noot van de redactie: ik vind het een stuk makkelijker om dit te begrijpen als ik de manier waarop ik deze getallen lees ook in mijn hoofd verander. Bijvoorbeeld, voor 108 lees ik "octaal één-oh" of "één-oh in basis- acht ". Voor 1010 lees ik" decimaal een-oh "of" een-oh in bas tien ".)

Geweldig, dus we weten dat 108 acht items vertegenwoordigt. (U kunt altijd een nummer in het eerste hulpmiddel steken voor een visualisatie.) Wat is het volgende nummer na 778? Als je 1008 hebt gezegd, heb je gelijk. We weten uit wat we tot nu toe hebben geleerd dat de eerste 7 in 778 groepen van 8 representeert, en de tweede 7 individuele items. Als we alles optellen, hebben we dat 7 * 8 + 7 * 1 = 63. Dus we hebben een totaal van 6310. Dus 778 = 6310. We weten allemaal 6410 komt na 6310.


Converteren van Base-8 naar Base-10

Laten we nu eens naar een nog leuker voorbeeld kijken. John biedt je 478 cookies en Jane biedt je 4310 cookies. Wiens aanbod neem je? Als u wilt, kunt u de grafiek voor de 478-afbeelding genereren met het eerste hulpmiddel. Laten we de basis-10-waarde bepalen, zodat we de beste beslissing kunnen nemen!

Zoals we bij het tellen zagen, vertegenwoordigen de vier in 478 het aantal groepen van acht. Dit is logisch - we zijn in base-8. In totaal hebben we dus vier groepen van acht en zeven groepen van één. Als we alles optellen, krijgen we dat 4 * 8 + 7 * 1 = 3910. Dus 478 cookies zijn exact hetzelfde als 3910-cookies. Het aanbod van Jane lijkt nu de beste!

Het patroon dat we eerder zagen met base-10 geldt hier ook. We zullen kijken naar 5238. Er zijn vijf groepen van 82, twee groepen van 81 en drie groepen van 80 (vergeet niet, 80= 1). Als we deze allemaal toevoegen, 5 * 82 + 2 * 81 + 3 * 80 = 5 * 64 + 2 * 8 + 3 = 339, we krijgen 33910 wat ons laatste antwoord is. Het onderstaande schema toont hetzelfde visueel:

Converteren van 523 van base-8 naar base-10

Hier zijn nog een paar voorbeelden:

  • 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

Converteren van Base-10 naar Base-8

Het converteren van basis-10 naar basis-8 is een beetje lastiger, maar nog steeds eenvoudig. In principe moeten we het proces van bovenaf omkeren. Laten we beginnen met een voorbeeld: 15010.

We vinden eerst het grootste vermogen van 8 dat kleiner is dan ons nummer. Hier is dit 82 of 64 (83 is 512). We tellen hoeveel groepen van 64 we kunnen nemen van 150. Dit is 2, dus het eerste cijfer in ons basis-8-nummer is 2. We hebben nu 128 van de 150, dus we hebben er 22 over.

Het grootste vermogen van 8 dat kleiner is dan 22 is 81 (dat is, 8). Hoeveel groepen van 8 kunnen we vanaf 22 nemen? Twee groepen opnieuw, en dus is ons tweede cijfer 2.

Tot slot blijven we met 6 over, en we kunnen uiteraard 6 groepen van één hiervan nemen, ons laatste cijfer. We eindigen met 2268.

Sterker nog, we kunnen dit proces een stukje duidelijker maken met wiskunde. Dit zijn de stappen:

  1. 150/82 = 2 restanten 22
  2. 22/81 = 2 rest 6
  3. 6/80 = 6

Ons laatste antwoord is dan al onze niet-resterende cijfers, of 226. Merk op dat we nog steeds beginnen te delen door de hoogste macht van 8, dat is minder dan ons aantal.


Omgaan met elke basis

Het is belangrijk om de concepten die we hebben geleerd over base-8 en base-10 op elke basis toe te passen. Net zoals basis-8 acht cijfers had en basis-10 tien cijfers had, heeft elke basis hetzelfde aantal cijfers als zijn basis. Dus base-5 heeft vijf cijfers (0-4), base-7 heeft zeven cijfers (0-6), enz.

Laten we nu kijken hoe we de basis-10-waarde van elk willekeurig getal in een base kunnen vinden. Stel dat we in base-b werken, waar b kan elk positief geheel getal zijn. We hebben een nummer d4d3d2d1d0 waarbij elke d een cijfer in een getal is. (De subscripts verwijzen hier niet naar de basis van het nummer, maar onderscheiden eenvoudig elk cijfer.) Onze basis-10 waarde is eenvoudig d4 * b4 + d3 * b3 + d2 * b2 + d1 * b1 + d0 * b0.

Hier is een voorbeeld: we hebben het nummer 32311 in base-4. Merk op hoe ons nummer alleen cijfers heeft van nul tot drie, omdat basis-4 slechts vier cijfers heeft. Onze basis-10-waarde is 3 * 44 + 2 * 43 + 3 * 42 + 1 * 41 + 1 * 40 = 3 * 256 + 2 * 64 + 3 * 16 + 1 * 4 + 1 * 1 = 949. We kunnen dit patroon volgen met elk willekeurig aantal cijfers in ons nummer.


Base-16

Base-16 wordt ook wel hexadecimaal genoemd. Het wordt vaak gebruikt bij het programmeren van computers, dus het is erg belangrijk om het te begrijpen. Laten we beginnen met het tellen in hexadecimaal om ervoor te zorgen dat we wat we tot nu toe over andere bases hebben geleerd, kunnen toepassen.

Omdat we met base-16 werken, hebben we 16 cijfers. Dus we hebben 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ... en yikes! We hebben geen cijfers meer, maar we hebben er nog zes nodig. Misschien kunnen we zoiets als een omcirkelde 10 gebruiken?

De waarheid is, we zouden kunnen, maar dit zou lastig zijn om te typen. In plaats daarvan gebruiken we gewoon letters van het alfabet, beginnend met A en verder naar F. Hier is een tabel met alle cijfers van basis-16:

Basis 16 cijfers Waarde
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
EEN 10
B 11
C 12
D 13
E 14
F 15

Anders dan deze extra cijfers is hexadecimaal net als elke andere basis. Laten we bijvoorbeeld 3D16 converteren naar basis-10. Volgens onze vorige regels hebben we: 3D16 = 3 * 161 + 13 * 160 = 48 + 13 = 61. Dus 3D16 is gelijk aan 6110. Merk op hoe we D's waarde van 13 gebruiken in onze berekening.

We kunnen van base-10 naar base-16 converteren zoals we dat deden met base-8. Laten we 69610 converteren naar basis-16. Ten eerste vinden we het grootste vermogen van 16 dat lager is dan 69610. Dit is 162, of 296. Dan:

  1. 696/162 = 2 rest 184
  2. 184/161 = 11 rest 8
  3. 8/161 = 8 rest 0

We moeten 11 vervangen door zijn cijferweergave B, en we krijgen 2B816.

Voel je vrij om nog meer conversies te proberen voor de praktijk. U kunt de onderstaande applicatie gebruiken om uw antwoorden te controleren:

Binair! (Grondtal 2)

Op naar de beroemde base-2, ook wel binair genoemd. Hoewel iedereen weet dat binary uit 0s en 1s bestaat, is het belangrijk om te begrijpen dat het wiskundig gezien niet anders is dan een andere basis. Er is een oude grap die als volgt luidt:

"Er zijn slechts 10 soorten mensen in de wereld: zij die binair zijn en degenen die dat niet begrijpen."

Kun je erachter komen wat het betekent??

Laten we een paar conversies proberen met base-2. Eerst zetten we 1011002 om naar basis-10. Wij hebben: 101100 = 1 * 25 + 1 * 23 + 1 * 22 = 32 + 8 + 4 = 4410.

Laten we nu 65 naar binair converteren. 26 is het hoogste vermogen van 2 minder dan 65, dus:

  1. 65/26 = 1 rest 1
  2. 1/25 = 0 rest 1
  3. 1/24 = 0 rest 1
  4. 1/23 = 0 rest 1
  5. 1/22 = 0 rest 1
  6. 1/21 = 0 rest 1
  7. 1/20 = 1 rest 0

En zo krijgen we ons binair nummer, 1000001.

Binary begrijpen is super belangrijk. Ik heb een tabel hieronder opgenomen om de waarden van de cijfers aan te geven.

De waarde van 10001 is bijvoorbeeld 17, de som van de waarden van de twee 1 cijfers (16 + 1). Dit is niets anders dan we eerder hebben gedaan, het is gewoon gepresenteerd op een gemakkelijk leesbare manier.


Trucs en tips

Normaal gesproken zou je bij het converteren tussen twee bases die geen base-10 zijn, zoiets als dit doen:

  1. Converteer nummer naar base-10
  2. Converteer resultaat naar gewenste basis

Er is echter een truc waarmee je snel tussen binair en hexadecimaal kunt converteren. Neem eerst elk binair getal en deel de cijfers in groepen van vier. Dus laten we zeggen dat we nummer 10111012 hebben. Opgesplitst hebben we 0101 1101. Merk op hoe we gewoon extra nullen kunnen toevoegen aan de voorkant van de eerste groep om even groepen van 4 te maken. We vinden nu de waarde voor elke groep alsof het was zijn eigen afzonderlijke nummer, wat ons 5 en 13 oplevert. Uiteindelijk gebruiken we gewoon de corresponderende hexadecimale cijfers om basis-16 nummer, 5D16, uit te schrijven.

We kunnen ook de andere kant op gaan door elk hexadecimaal cijfer in vier binaire cijfers om te zetten. Probeer B716 naar binair te converteren. Je zou 101101112 moeten krijgen.

Deze truc werkt omdat 16 een kracht van 2 is. Wat dit betekent is dat we een vergelijkbare truc gebruiken voor base-8, die ook een kracht van 2 is:

Natuurlijk kunt u het proces ook omkeren van base-8 naar binary.


Conclusie

Laten we helemaal teruggaan en opnieuw naar het spel met kleuren raden gaan.

Wanneer geconverteerd naar hexadecimaal, vertegenwoordigen de eerste twee cijfers de hoeveelheid rood, de volgende twee de hoeveelheid groen en de laatste twee de hoeveelheid blauw. Dus, als onze kleur 17FF1816 is, kunnen we gemakkelijk zien dat onze rode component 1716 of 2310 is. Onze groene component is FF16 of 25510. Uiteindelijk is onze blauwe component 1816 of 2410. Als we de basis-10-versie van onze kleur krijgen , 157263210, we moeten het converteren naar hexadecimaal voordat we er iets over kunnen vertellen.

Probeer het spel opnieuw en kijk hoeveel beter u kunt doen!

Het begrijpen van verschillende nummer-systemen is uiterst nuttig op veel computergerelateerde gebieden. Binair en hexadecimaal komen heel vaak voor, en ik moedig u aan om ze zeer goed te leren kennen. Bedankt voor het lezen - ik hoop dat je veel hebt geleerd van dit artikel! Als u vragen heeft, kunt u deze hieronder stellen.