Skip to main content Spring til indhold

Binære tal og digital data forklaret

Alt, hvad en computer gemmer, beregner og sender, er i sidste ende lange rækker af 0 og 1. Tal, tekst, billeder, lyd og hjemmesider er bare forskellige måder at tolke de samme bits på. Her forklarer vi, hvordan det binære talsystem virker, hvordan forskellige slags data bliver til bits, og hvordan bits bliver til signaler, der kan sendes over en ledning eller gennem luften.

Hvorfor kun to cifre?

En computer er bygget af milliarder af transistorer, der hver fungerer som en kontakt: tændt eller slukket. To tilstande er lette at skelne fra hinanden, også når signalet er lidt støjfyldt eller spændingen svinger. Skulle en transistor skelne mellem ti niveauer, ville den mindste forstyrrelse gøre et 6-tal til et 7-tal. Med kun to cifre, 0 og 1, er elektronikken både enklere, billigere og langt mere pålidelig, og alt andet kan bygges oven på.

Sådan tæller man binært

I titalssystemet har hver plads værdien 10 gange pladsen til højre: enere, tiere, hundreder. I det binære system har hver plads værdien 2 gange pladsen til højre: 1, 2, 4, 8, 16, 32, 64, 128 og så videre. Et binært tal læses ved at lægge værdierne sammen for de pladser, hvor der står 1.

Pladsværdi   128  64  32  16   8   4   2   1
Binært         1   0   1   1   0   1   0   1

128 + 32 + 16 + 4 + 1 = 181

Den anden vej, fra titalssystemet til binært, kan man gøre ved at dividere med 2 igen og igen og notere resten hver gang. Tag 13: 13 divideret med 2 giver 6 med rest 1, 6 giver 3 med rest 0, 3 giver 1 med rest 1, og 1 giver 0 med rest 1. Læst nedefra og op er resterne 1101, og det er 13 binært (8 + 4 + 1).

Et enkelt binært ciffer kaldes en bit. Otte bit udgør en byte, som kan antage 28 = 256 forskellige værdier, fra 0 til 255. Det er grunden til, at hvert af de fire tal i en IPv4-adresse går fra 0 til 255: hvert af dem er én byte. For hver bit, man lægger til, fordobles antallet af mulige værdier, så 32 bit giver godt fire milliarder, og 64 bit giver et tal med tyve cifre.

Hexadecimal

Lange rækker af 0 og 1 er svære for mennesker at læse, så man skriver dem ofte hexadecimalt, altså i 16-talssystemet med cifrene 0–9 og A–F. Pointen er, at ét hexadecimalt ciffer svarer præcis til fire bit, så en byte altid er to cifre: 181 er 1011 0101 binært og B5 hexadecimalt. Du møder hexadecimale tal i farvekoder på hjemmesider, som #2E7EB8, i MAC-adresser og i IPv6-adresser.

Regning og logik

Binær addition fungerer som den, man lærer i skolen, bare med mente allerede ved 2: 1 + 1 giver 0 med 1 i mente. Hele processoren er bygget op af små kredsløb, der udfører den slags operationer på mange bits ad gangen.

Ud over regning bruger computere logiske operationer på bits. AND giver 1, kun hvis begge bits er 1, OR giver 1, hvis mindst én af dem er, og XOR giver 1, hvis de er forskellige. De lyder abstrakte, men bruges overalt. En subnetmaske i et netværk anvendes med AND for at finde netværksdelen af en adresse, og XOR bruges i kryptering og fejlkontrol.

Tal, tekst, billeder og lyd

En række bits betyder ingenting i sig selv. Det er aftalen om, hvordan de skal tolkes, der gør dem til et tal, et bogstav eller en farve. Byten 01000001 er tallet 65, men i en tekstfil er den bogstavet A.

Negative tal gemmes næsten altid med en metode kaldet to-komplement, hvor den forreste bit angiver fortegnet. Metoden er valgt, fordi almindelig addition så virker for både positive og negative tal uden særlige regler. Kommatal gemmes som en slags videnskabelig notation i binær form, og derfor kan 0,1 + 0,2 i mange programmer give 0,30000000000000004: 0,1 kan ikke skrives præcist binært, ligesom 1/3 ikke kan skrives præcist som decimaltal.

Tekst gemmes ved at give hvert tegn et nummer. Den gamle ASCII-standard havde plads til 128 tegn, nok til det engelske alfabet, men ikke til æ, ø og å. I dag bruges Unicode, der har numre til næsten alle verdens skrifttegn, og på nettet gemmes det næsten altid som UTF-8. Her fylder de engelske bogstaver stadig én byte, mens andre tegn fylder to, tre eller fire:

TegnUnicodeUTF-8 (hexadecimalt)Bytes
AU+0041411
æU+00E6C3 A62
€U+20ACE2 82 AC3

Har du nogensinde set æ i stedet for æ på en hjemmeside, er det netop de to bytes C3 A6, der er blevet læst, som om hver byte var sit eget tegn.

Billeder består af pixels, og hver pixel gemmes typisk som tre bytes, én for rød, grøn og blå. Et ukomprimeret billede i fuld HD (1920 × 1080 pixels) fylder derfor over 6 MB, og det er derfor, formater som JPEG, WebP og AVIF komprimerer billederne. Lyd gemmes ved at måle lydbølgen mange gange i sekundet. En musik-cd måler 44.100 gange i sekundet med 16 bit i to kanaler, hvilket giver lidt over 1,4 millioner bit pr. sekund, før der komprimeres.

Fra bits til signaler

For at sende bits fra én computer til en anden skal de laves om til noget fysisk. I et netværkskabel er det spændingsniveauer, i en fiberforbindelse lysimpulser, og i wifi og mobilnet ændringer i radiobølgers frekvens, styrke og fase. Moderne forbindelser koder flere bits i hvert signal for at få mere igennem, og det er en stor del af grunden til, at hastighederne bliver ved med at stige over de samme kabler og frekvenser.

Ingen fysisk forbindelse er fejlfri. Støj og forstyrrelser kan vende en bit, så et 0 bliver til et 1. Derfor sendes der altid ekstra bits med, der gør det muligt at opdage fejl. Den simpleste form er en paritetsbit, der fortæller, om antallet af 1-taller skal være lige eller ulige. Netværk bruger mere avancerede kontrolsummer, og nogle forbindelser kan endda rette fejl selv uden at bede om at få data igen. Hvordan data bliver delt op i pakker og sendt pålideligt på tværs af internettet, kan du læse i guiden om datapakker i TCP/IP, og overblikket over alle lagene findes i guiden om netværksprotokoller.

Ofte stillede spørgsmål

Er en kilobyte 1.000 eller 1.024 bytes?

Officielt er en kilobyte (kB) 1.000 bytes, og 1.024 bytes hedder en kibibyte (KiB). I praksis bruges kB stadig om begge dele, hvilket er grunden til, at en harddisk ser mindre ud i styresystemet end på æsken.

Hvorfor måles internethastighed i bit og filer i bytes?

Forbindelser måles traditionelt i bit pr. sekund, filer i bytes. Dividér med 8 for at sammenligne: en forbindelse på 100 Mbit/s kan højst overføre omkring 12,5 MB i sekundet.

← Alle indlæg

Lad os høre mere om dig

Er din webshop langsom, ustabil eller bare svær at arbejde med? Skriv et par linjer, så får du en ærlig vurdering direkte fra udvikleren.