Binær, decimal og hexadecimal: sådan regner du fra det ene til det andet

Omregning mellem talsystemer virker som magi, indtil du ser, at det altid er den samme idé: hvert ciffer har en værdi efter den plads, det står på. Her lærer du at regne fra binær til decimal og fra decimal til binær i hånden, at læse hexadecimal uden frygt og at omsætte tekst til bit, med udregnede eksempler og en tabel fra 0 til 15 at have ved hånden.

Opdateret:

Hvad et positionssystem er

I det decimale tal 4.095 er 4-tallet ikke værd 4: det er værd 4.000, fordi det står på tusindernes plads. Hver position ganger cifret med en potens af 10 (1, 10, 100, 1.000 …). Det er et positionssystem, og grundtallet er antallet af forskellige cifre, man bruger: ti i det decimale.

Binær virker på samme måde, men med grundtal 2: der findes kun 0 og 1, og hver plads er dobbelt så meget værd som den forrige. Hexadecimal bruger grundtal 16: de seksten cifre er 0 til 9 og bogstaverne A til F, og hver plads er 16 gange så meget værd som den forrige. Computere arbejder i binær, fordi et kredsløb kun skal skelne mellem to tilstande (slukket og tændt), og hexadecimal er en kort måde at skrive disse bit på.

Hvad hver plads er værd. Hvis du lærer potenserne af 2 op til 128 udenad, sparer du næsten al regning.
Position (fra højre mod venstre)Værdi i binærVærdi i hexadecimal
1.11
2.216
3.4256
4.84.096
5.1665.536
6.321.048.576
7.6416.777.216
8.128268.435.456

Fra binær til decimal, i hånden

Du skriver hvert ciffer med værdien af sin plads og lægger kun de pladser sammen, hvor der står et 1-tal. Eksempel med 1101: fra højre mod venstre er pladserne værd 1, 2, 4 og 8.

  1. Skriv tallet og under det værdien af hver position: 1 1 0 1 over 8 4 2 1.
  2. Se efter, hvad der står på hver plads: et 1-tal på 8'erens plads, et 1-tal på 4'erens, et 0 på 2'erens og et 1-tal på 1'erens.
  3. Ignorer de pladser, hvor der står 0 (her 2'erens).
  4. Læg sammen: 8 + 4 + 0 + 1 = 13. Så 1101 i binær er 13 i decimal.

Med flere cifre er det det samme: 11111111 er 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, den største værdi, der kan være i 8 bit. Og 10110110 er 128 + 32 + 16 + 4 + 2 = 182.

Fra decimal til binær, med gentagne divisioner

Du dividerer tallet med 2 igen og igen og noterer resten fra hver division (altid 0 eller 1), indtil kvotienten er 0. Resterne, læst nedefra og op, er det binære tal. Eksempel med 45:

Læser du resterne nedefra og op, får du 101101. For at kontrollere det lægger du sammen: 32 + 8 + 4 + 1 = 45.

Der er en alternativ metode, som mange foretrækker: træk potenser af 2 fra, fra den største til den mindste. For 200: 128 er der plads til (der er 72 tilbage), 64 er der plads til (der er 8 tilbage), 32 og 16 er der ikke plads til, men det er der til 8 (der er 0 tilbage). De brugte pladser er 128, 64 og 8, så 200 = 11001000.

Hexadecimal: seksten cifre og en tabel at have ved hånden

Da der ikke findes cifre for 10 til 15, bruger man bogstaverne A, B, C, D, E og F. Et hexadecimalt ciffer svarer præcis til fire bit (en «nibble»), og derfor er det så praktisk: en byte på 8 bit skrives med blot to hexadecimale cifre.

For at regne hexadecimal om til decimal ganger du hvert ciffer med den potens af 16, der hører til pladsen, og lægger sammen. For eksempel er 3F = 3 × 16 + 15 = 63 og A3 = 10 × 16 + 3 = 163.

Fra 0 til 15 i de fire talsystemer, som værktøjet viser.
DecimalBinær (4 bit)OktalHexadecimal
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Hvorfor man bruger hexadecimal: bytes, farver og adresser

En byte er 8 bit og går fra 0 til 255 (00000000 til 11111111). At skrive bit i hånden er langsomt og giver let fejl; i hexadecimal er den samme byte to tegn, fra 00 til FF. For at regne binær om til hexadecimal deler du bittene i grupper på fire fra højre og erstatter hver gruppe med dens ciffer fra tabellen. Eksempel: 11010111 deles i 1101 og 0111, som er D og 7, så det er D7. Som decimal er det 13 × 16 + 7 = 215.

Det bedst kendte tilfælde er webfarver. I #FF8800 er der tre bytes: FF til rød (255), 88 til grøn (136) og 00 til blå (0). Det er en kraftig orange: al den røde, lidt over halvdelen af den grønne og ingen blå. Hexadecimal optræder også i hukommelsesadresser, fejlkoder og netværksidentifikatorer.

Fra tekst til binær med ASCII

En computer gemmer hvert bogstav som et tal, og det tal som bit. I ASCII-tabellen er A 65, som i binær med 8 bit er 01000001. Ordet «Hi» er to bogstaver: H er 72 (01001000) og i er 105 (01101001), så det skrives 01001000 01101001. Med «Hola» er det 72, 111, 108 og 97, altså 01001000 01101111 01101100 01100001, eller i hexadecimal 48 6F 6C 61.

Værktøjet bruger UTF-8-kodning: for de almindelige engelske bogstaver fylder hvert tegn én byte på 8 bit, men et æ, et ø, et å, et bogstav med accent eller en emoji fylder flere bytes og giver derfor mere end 8 bit. For eksempel er æ to bytes: 11000011 10100110 (C3 A6 i hexadecimal).

Sådan gør du det hele med værktøjet

Omregneren «Binær, decimal og hex» er god til at kontrollere dine udregninger i hånden eller til at løse lange tal uden fejl.

  1. Skriv tallet i feltet for dets talsystem: «Decimal (grundtal 10)», «Binær (grundtal 2)», oktal eller «Hexadecimal (grundtal 16)». De tre andre udfyldes af sig selv.
  2. Hvis cifret ikke passer til talsystemet (for eksempel et 2-tal i binær), giver værktøjet besked.
  3. Til tekst skriver du den i feltet «Tekst» og ser «Binær (8 bit pr. tegn)» og hexadecimal pr. byte. Du kan også indsætte bit i grupper på 8 for at komme tilbage til tekst.
  4. Til særlige talsystemer bruger du «Vilkårligt grundtal (2 til 36)»: du vælger det grundtal, du går fra, det, du går til, og tallet.

Grænserne: værktøjet regner kun hele tal, der ikke er negative (ingen decimaler og intet fortegn), og sætter ikke nuller foran for dig, så hvis du vil have fast 8 bit, skal du selv udfylde (13 er 00001101). Intet af det, du skriver, forlader din browser.

Almindelige fejl

Opgaver med løsning til at øve sig på

Prøv at løse hver enkelt, før du ser svaret, og kontrollér bagefter med værktøjet.

Ofte stillede spørgsmål

Hvordan regner jeg 1101 om fra binær til decimal?

Du lægger værdierne sammen for de pladser, hvor der står et 1-tal: 8 + 4 + 1 = 13. Det andet ciffer fra højre er et 0, så 2'eren tæller ikke med.

Hvad er 255 i binær og i hexadecimal?

255 er 11111111 i binær og FF i hexadecimal. Det er den største værdi, der kan være i en byte på 8 bit.

Hvorfor bruger hexadecimal bogstaver?

Fordi det har brug for seksten forskellige symboler, og det decimale system kun giver ti (0 til 9). Derfor er A værd 10, B værd 11, C værd 12, D værd 13, E værd 14 og F værd 15.

Hvor mange forskellige tal kan man skrive med 8 bit?

256, fra 0 til 255. Generelt kan man med n bit repræsentere 2 i n'te potens værdier.

Regner værktøjet negative tal eller tal med decimaler om?

Nej, kun hele tal, der ikke er negative. Til tekst bruger det UTF-8, så bogstaver med accent, æ, ø, å og emojis giver mere end 8 bit.