Talsystemer

Binære og hexadecimale tal

Vores viden om aritmetik er så grundlæggende, at det er svært at forestille sig, hvorledes det ville være uden denne viden. Hvis man betragter tallet 349 fås umiddelbart "trehundredeogniogfyrre". Hvis man skal forstå binære og hexadecimale tal, bliver man nødt til at se nærmere på tallet 349 og indse, at det ikke er et tal, men en kode, der beskriver et tal.

Lad os starte i det små, og betragte tallet 3. Tegnet eller cifret 3 er en krusedulle på et stykke papir, medens tallet 3 er et begreb. Cifret benyttes til repræsentere tallet, fx repræsenterer 3, iii, III, *** alle tallet 3.

Titalssystemet

I titalsystemet eller rettere det decimale talnotationssystem anvendes cifrene 0, 1, 2, 3, 4, 5, 6, 7, 8 og 9 til at repræsentere alle tal. Til at repræsentere tallet 9+1 benyttede de gamle romere tegnet X, medens det arabiske talsystem, som vi benytter os af, og som er et positionstalsystem, benytter cifrene 1 og 0 til at repræsentere tallet. 10 kaldes basen, og cifrenes position angiver deres værdi. Cifret længst til højre repræsenterer 1'ere (100), næste ciffer repræsenterer 10'ere (101) og det n'te ciffer fra højre repræsenterer antallet af 10n-1.

Andre talsystemer

Der findes andre baser end 10. Lad os fx se på ottetalsystemet:

For at skelne mellem tal skrevet i forskellige talsystemer angives basen som et fodtegn til tallet. Fx skrives tallet enogtyve i titalsystemet som 2110, medens det i ottetalsystemet skrives som 258. Hvorfor 25? Jo, fordi 2 betyder, at der er to ottere, og 5 betyder, at der er fem enere, altså seksten plus fem er lig med enogtyve. Vi har således at 2110 = 239 = 258 = 307 =346 osv.

Binære talsystem

Det binære talsystem er den ultimative udvidelse af talnotationsbegrebet, idet der kun findes to cifre, nemlig 0 og 1. Vi har:

Position:

8

7

6

5

4

3

2

1

Potens:

27

26

25

24

23

22

21

20

Værdi:

128

64

32

16

8

4

2

1

Tallet enogtyve fra før skrives således som 2110 = 101012

Det binære talsystem er praktisk, fordi det svarer fuldstændig til, hvad en computer behøver at repræsentere, dvs. "tilstrækkelig strøm/ikke tilstrækkelig strøm" eller "ja/nej", "sand/falsk" osv. Pr. definition svarer 0 til "falsk" eller "nej".

Det binære talsystems styrke åbenbares, når først denne overvejelse er gjort. Med 1'ere og 0'ere kan den fundamentale sandhed af ethvert kredsløb repræsenteres: Er der strøm/spænding eller er der ikke?

Bits, Bytes og Nipples

Konventionen med at betegne sandt og falsk med 1'ere og 0'er gør de binære cifre (bits) særdeles vigtige. De første computere kunne kun sende 8 bits ad gangen, og det var derfor naturligt at skrive koder i 8-bit tal, også kaldet bytes. En halv byte (4 bits) kaldes en nipple. Med 8 binære cifre kan man repræsentere 256 værdier - Fra tallet 0000 00002 = 010 til tallet 1111 11112 = 25510, i alt 256 værdier.

KB - Kilobyte

Da det viser sig, at 210 (1.024) tilnærmelsesvis er lig med 103 (1.000), har man i computerkredse refereret til 210 bytes som 1KB eller 1 kilobyte (kilo = tusind). På samme vis refererer man til 1.024 * 1.024 = 1.048.576 bytes som en 1MB eller 1 megabyte (mega = million), og 1.024 megabytes kaldes 1 gigabyte (giga = billion).

Hexadecimale tal

De binære tal er imidlertid svære at læse. Derfor har man forsøgt at finde en anden måde at repræsentere de samme værdier på. At oversætte fra binære tal til decimaltal kræver en del talmanipulation, men det viser sig, at være særdeles enkelt at oversætte binære tal til hexadecimale.

Hexadecimale tal (16-talsystemet) består af følgende cifre: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E og F.

Position:

4

3

2

1

Potens:

163

162

161

160

Binært:

212

28

24

20

Værdi:

4.096

256

16

1

For at oversætte binære tal til hexadecimale, så opdeles tallet først i dele af 4 cifre. Tallet 25210 = 111111002 skal oversættes til hexadecimalt. Først opdeles tallet i grupper af 4 cifre:

1 1 1 1 og 1 1 0 0

Tallet til højre 1100 svarer til 12 decimalt eller C hexadecimalt
Tallet til venstre 1111 svarer til 15 decimalt eller F hexadecimalt

Heraf fås, at 11111100 = FC - Ganske enkelt!