Binære tal

Alle computere benytter internt binære tal. Men hvad er så binære tal? At noget er binært betyder at det har to tilstande. Binære tal har altså to cifre, nemlig nul og et {0,1}. Ellers bruger man det på samme måde som vores normale talsystem.

Fremover vil jeg adskille talsystemerne med (2) for binære tal og (10) for vores normale tal system. altså 10(2) er altså en værdi i det binære talsystem mens 10(10) er en værdi i vores normale talsystem.

Opbygningen af binære tal ligner meget vores normale talsystem 0(10) repræsenteres med 0(2), 1(10) repræsenteres med 1(2), 3(10) repræsenteres ikke af 3(2) for det findes jo ikke men af 10(2).

Det er altså som med vores normale talsystem, når der ikke er flere værdier tager man den næste position i brug. Men hedder den ikke 101? Nej, grundtallet følger talsystemet og ciffer positionerne hedder altså 22 21 20 , 2-1 o.s.v.

Forvirret? Lad os se på et eksempel. lad os tage tallet 10,11(2) og lægge tallet 1,111(2) til.

Også her skal vi sikre at decimal punktet er sat ens og der tilføjes et 0 til 10,11

[1]           [2]           [3]           [4]

                                                    (1)
        10,110        10,110        10,110        10,110
       + 1,111    -> + 1,111    -> + 1,111    -> + 1,111
       -------       -------       -------       -------
      resultat             1           101            01

Startopstillingen er vist under [1] med det tilføjet 0 til 10,11. Igen starter vi med det mindst betydende ciffer. [2] viser sammenlægningen af de to første cifre. 0 + 1 = 1, som skrives i resultatet. I [3] har vi det første problem. 1 + 1 = 10(2), husk 2 findes ikke i det binære talsystem. Men som i det normale talsystem skriver vi det mindst betydende ciffer i resultatet og flytter det mest betydende op som mente, som det er vist i [4].

[5]           [6]           [7]           [8]

          (1)         (1)                         (1)
        10,110        10,110        10,110        10,110
       + 1,111    -> + 1,111    -> + 1,111    -> + 1,111
       -------       -------       -------       -------
          1101           101          ,101        10,101

I [5] fortsætter vi beregning med 1 + 1 + menten 1 = 3. 3 findes ikke i det binære men er erstattet af 11 (1*21 + 1*20). Igen er vi ikke færdig men beholder mindst betydende ciffer i resultatet og flytter det mest betydende op som mente som vist i [6]. Bemærk at decimal punktet ikke har betydning her. I [7] flytter vi igen decimalpunktet ned og er klar til at fortsætte. [8b]er det samme igen 0 + 1 + menten 1 = 2. 2 finde ikke i det binære talsystem, så det er altså 0 + 1 + 1 = 10.

[9]           [10]

       (1)           (1)
        10,110        10,110
       + 1,111    -> + 1,111
       -------       -------
         0,101       100,101

I [9] kan vi igen ikke have et to cifret resultat så vi deler det i mindst betydende ciffer til resultatet og mest betydende til mente. [10] afslutter beregningen. Det nederste tal har ikke flere cifre og vi indsætter et 0 så regnestykket igen hedder 1 + 0 + menten 1 = 2. 2 skrives som 10 som vi skriver i resultat. Grunden til at vi direkte kan skrive det i resultatet er at der ikke er flere cifre at regne på. Vi får altså resultatet 100,101(2)

Metoden er altså den samme som ved vores normale talsystem. Forskellen er hvad hver position i tallet betyder. Hvor arabertallet stiger med *10 for hver plads til venstre for decimal punktet stiger det binære system med *2. Hvor vi normalt siger 1 -> 10 -> 100 siger det binære 1->2->4. Det samme gør sig gældende mod venstre. Arabertalsystemet siger 1/10 -> 1/100 -> 1/100 mens det binære talsystem siger 1/2 -> 1/4 -> 1/8

Konvertering mellem arabertal og binære tal

For at gøre tingene lettere vil jeg kun vise det for heltal. Inden for computerer er det alligevel typisk kun heltal man ser, med meget få undtagelser.

Fra arabertal til binært tal

Lad os tage tallet 4831(10) til at konverterer til det tilsvarende binære tal.

Metoden er ganske simpel. Tallet heltals divider det med det nye grundtal (2). Hvis der er en rest skrives 1 ellers skrives 0. Tag resultatet og gør det igen. fortsæt til resultatet er 0. Den første rest er mindst betydende ciffer i det binære tal og de efterfølgende kommer med stadig stigende betydning.

Hele det efterfølgende eksempel er i arabertal hvor ikke andet er vist:

4831 / 2 = 2415 rest = 1

2415 / 2 = 1207 rest = 1

1207 / 2 = 603 rest = 1

603 / 2 = 301 rest = 1

301 / 2 = 150 rest = 1

150 / 2 = 75 rest = 0

75 / 2 = 37 rest = 1

37 / 2 = 18 rest = 1

18 / 2 = 9 rest = 0

9 / 2 = 4 rest = 1

4 / 2 = 2 rest = 0

2 / 2 = 1 rest = 0

1 / 2 = 0 rest = 1

Vi kan nu udlæse det tilsvarende binære tal fra bunden mod toppen i rest tallene. Altså 1001011011111(2)

Typisk skrives det inden for IT verdenen med . (punktum) for hver 4 tegn fra højre mod venstre. Tallet vil altså typisk fremstå som 0001.0010.1101.1111(2) Vi vil under hexadecimale og oktale tal se hvorfor denne gruppering er specielt velegnet.

Fra binær tal til araber tal

For at komme fra det binære talsystem til araber tal systemet gør man følgende:

Tag det mest betydende ciffer gang det med 2. Læg det næste ciffer til og gang så resultate med 2. Forsæt med det indtil det sidste og mindst betydende ciffer. Dette lægge til men der ganges ikke med 2. nu har man resultatet i araber tal.

Lad os tage det binære tal vi lige kom frem til:

1001011011111(2)

2 * 1 = 2
(   2 + 0) * 2 = 4
(   4 + 0) * 2 = 8
(   8 + 1) * 2 = 18
(  18 + 0) * 2 = 36
(  36 + 1) * 2 = 74
(  74 + 1) * 2 = 150
( 150 + 0) * 2 = 300
( 300 + 1) * 2 = 602
( 602 + 1) * 2 = 1206
(1206 + 1) * 2 = 2414
(2414 + 1) * 2 = 4830
(4830 + 1)     = 4831

Resultatet er altså 4831(10)

Ok, nu kan vi altså komme fra arabertal til binære tal og tilbage. Det viser dog et “problem” med de binære tal. De får hurtigt mange cifre. Selv i de små eksempler her er vi oppe på 12 cifre for et 4 cifres arabisk tal. Det bliver altså hurtigt uoverskueligt for mennesker med de mange cifre. Løsningen på det er at indføre endnu 2 talsystemer, det oktale og det hexadecimale talsystem.

Nu sidder du sikkert og undrer dig over hvordan det skal gøre det mere overskueligt. Svaret er at begge disse talsystemer har nogle hurtige genveje fra de mange binærer cifre til et mindre antal oktale eller hexadecimale cifre og er dermed mere menneske venlige. sådanne genveje finde derimod ikke mellem det binære tal og arabertal. Det er også værd at bemærke at man i dag næsten udelukkende benytter hexadicimale tal.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *