torsdag 22. mai 2014

Sammenhengen og logikken bak tallsystemer

For mange vil binære tall se helt merkelig og uforståelig ut, men det er egentlig ikke så vanskelig å skjønne.

Titallsystemet

Vi er alle vant med desimale tall (titalls-systemet). Når du går i butikken og kjøper noe, er prisen gjerne 999. Dette er et tall i titall-systemet. Tallsystemet er såpass innarbeidet, at man vet at 10 kommer etter 9.

Man kan egentlig tenke på det at ved å dele opp verdien du har, i hvert tegn:
999 => [9][9][9], så vet du at du ikke har plass til flere tegn, uten å utvide.
Derfor vet du at 999 følges av: 1000.

Det binære tallsystemet

Binært er av eller på, 1 eller 0. Det er litt som lysbryteren din, enten er lyset av eller på (nå ser vi bort i fra dere som har dimmer, he he). Men når det er sagt, er ellers virkemåten litt på samme måte som i titall-systemet.

På lik måte med titallsystemet, begynner det binære tallsystemet med 0.
Hva er det neste? Jo, det blir 1.

Som nevnt, er binære tall 0 eller 1, hva følger da 1?
På samme måte som i titallsystemet, har vi ikke plass til mer, hvis du har bare 1-ere.
Derfor blir neste verdi: 10

Når verdien er 10, har vi mer plass og neste blir: 11.
Igjen er det ikke plass, 11 blir til 100, som følges av 101 og 110, deretter 111 og så 1000.

Dette fortsetter slik nedover.

Det heksadesimale tallsystemet

Nå blir det kanskje litt vel "gresk", mange har ikke hørt om heksadesimale tallsystemet en gang. Det blir litt ny logikk å tenke på her. I motsetning til det desimale tallsystemet, vil det heksadesimale tallsystemet ha verdier mellom: 0-9, A-F.

Hvordan virker dette i praksis? Det virker kanskje veldig vanskelig, men egentlig ikke.
Vi begynner på 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Men hva er neste? Det er ikke 10, det er: A, fulgt av B, C, D, E, F.
Når F er nådd (husk det var 0-9, A-F), følges det av: 10, 11, 12, ... 18, 19.
Neste verdi blir da 1A, 1B, 1C, 1D, 1E, 1F.

Som vi husker, 0-9, A-F. Derfor er neste etter 1F = 20, 21, 22, 23... (opp til 29), etterfulgt av 2A, 2B..

Det oktale tallsystem

Oktale tallsystemet har et grunntall 8. En enkel måte å huske det på, er å tenke på oktagon (åttekant), eller engelsk Octapus (blekksprut, med 8 armer).

Hvis man bare ser på tallrekken, blir man kanskje forvirret. Men hvis vi tenker på samme måte: Vi begynner på 0: 0,1,2,3,4,5,6,7

Neste tall blir: 10 (vi har jo bare tallene 0-7, som er åtte tall).

Tallene i system

For å omregne mellom tallsystemene, kan vi sette de i en tabell:
Desimalt Binært Hexadesimalt Oktalt
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 8 10
9 1001 9 11
10 1010 A 12
11 1011 B 13
12 1100 C 14
13 1101 D 15
14 1110 E 16
15 1111 F 17

Notasjoner

Ved konvertering mellom tallsystemer, er det viktig å bruke notasjoner. Dette er på grunn av at for eksempel 11 i desimaltall ikke er det samme som 11 i det binære tallsystemet.

Notasjoner skrives gjerne som et lite tall, til høyre for verdien.
Her er notasjonene for de fire tallsystemene jeg har skrevet om:

Desimalt Binært Hexadesimalt Oktalt
10 2 16 8
Det er egentlig lett å huske. Desimaltall (titallsystemet) har notasjonen 10, binære tallsystemet har 2, heksadesimalt har 16 (0-9 er 10 tegn + A-F er 6 tegn = 16). Oktalt er som vi husker åtte.

Hvis vi skal vise den binære verdien til desimaltallet 11, kan vi gjøre det slik:
1110 = 10112

Mønster i binære tall

Jeg fant et mønster i det binære tallet, som jeg synes var litt morsomt.
Hvis man deler opp verdiene tegn for tegn, vil man se at det er et spesifikt mønster som repeterer nedover, avhengig av hvilket tegn man ser på. Dette kan man i teorien bruke til kontrollsjekk (er det riktige verdier nedover?).

Jeg har her splittet det opp, for å vise mønsteret (dette gjør jeg ikke for å forklare noe altså, bare for å vise mønsteret jeg så):
Binært Kol1 Kol2 Kol3 Kol4
0


0
1


1
10

1 0
11

1 1
100
1 0 0
101
1 0 1
110
1 1 0
111
1 1 1
1000 1 0 0 0
1001 1 0 0 1
1010 1 0 1 0
1011 1 0 1 1
1100 1 1 0 0
1101 1 1 0 1
1110 1 1 1 0
1111 1 1 1 1

I kolonne 4 ser vi jo fort at det er annenhver 0, 1. Derimot har kolonne 3 to par (1,1, 0,0, 1,1, 0,0).
Kolonne 2 har fire samlet: (1,1,1,1,0,0,0,0,1,1,1,1), mot kolonne 1 som har 8 samlet (1,1,1,1,1,1,1,1).
Hadde jeg fortsatt ned til desimaltall 32, ville mønsteret blitt i kolonne 1: (1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0) (osv.).