Tallsystemer

Titallsystemet

Vi mennesker er vant med å regne med 10 som grunntall, vi bruker titallsystemet (desimalsystemet). Dette kommer formodentlig av at mennesker har 10 fingre, og derved er i stand til å representere 10 ulike sifre uten ekstra hjelpemidler. De 10 sifrene er symbolene 0, 1, 2, 3, 4, 5, 6, 7, 8 og 9.

Tallsystemet vårt er et posisjonssystem, hvor verdien til hvert siffer avhenger av hvor i tallet sifferet er plassert. I tallet 782, for eksempel, representerer sifferet 7 «syv hundre», 8 representerer «åtti», og 2 representerer «to». Sifferet lengst til høyre representerer enere, det neste tiere, deretter hundrere, etc.

Vi ser at sifferverdien, altså 0, 1, 2, 3, 4, 5, 6, 7, 8 og 9, multipliseres med tallsystemets grunntall, altså 10, opphøyd i sifferets posisjonsnummer. Enerplassen regnes som posisjon null. 782 betyr for eksempel altså 7 · (10)2 + 8 · (10)1 + 2 · (10)0 = 7 · 100 + 8 · 10 + 2 · 1.

Totallsystemet

Et annet viktig posisjonssystem er totallsystemet (binærsystemet), der vi bruker 2 som grunntall. I totallsystemet brukes bare to sifre, 1 og 0, og de ulike posisjonene representerer 1, 2, 4, 8, og så videre, i stedet for titallsystemets 1, 10, 100, 1000, etc. Helt analogt med titallsystemet multipliseres sifferverdien (0, 1) med tallsystemets grunntall (2) opphøyd i sifferets posisjonsnummer. 1101 betyr for eksempel 1 · 23+ 1 · 22 + 0 · 21 + 1 · 20 = 1 · 8 + 1 · 4 + 0 · 2 + 1 · 1 = 13 i titallsystemet.

For å angi hvilket tallsystem vi arbeider i, bruker vi et lite subskript. 2 for totallsystemet, 10 for titallsystemet, etc. For eksempel betyr 11012 = 1310 at 1101 i totallsystemet er lik 13 i titallsystemet.

Siden det bare er to sifre i totallsystemet, kan vi lett representere tall fysisk ved å la 1 bety at noe er til stede og 0 at noe ikke er til stede. Dette er illustrert på bildet under, ved hjelp av egg i en eggekartong. Her ligger det egg i de fire posisjonene lengst til venstre, mens de to til høyre er tomme. Tallet dette symboliserer blir derved 1111002. Skulle vi representert det samme i titallsystemet, måtte vi innført et innfløkt system der for eksempel rødt egg betydde 1, blått egg 2, grønt egg 3, etc.

Egg som illustrerer 111100 i totallsystemet
 

Datamaskiner representerer tall som fysiske enheter, selv om det ikke er egg. I RAM-minne, for eksempel, betyr «elektriske ladning» 1, og «ingen ladning» 0. Skulle vi operert i titallsystemet, måtte vi holdt rede på 10 forskjellige ladningsnivåer, like innviklet som 10 fargede egg.

En annen stor fordel med totallsystemet er at regneoperasjonene er svært enkle. Regnereglene for addisjon er slik:

0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 0 og 1 i mente

Multiplikasjon i totallsystemet er like enkelt. Gangetabellen ser slik ut:

  0 1 10
0 0 0 0
1 0 1 10
10 0 10 100

På grunn av den enkle måten å representere tall på og de enkle regnereglene arbeider de aller fleste datamaskiner i totallsystemet, de er binære.

Skal vi gjøre operasjoner på flere tall, kan vi ta for oss to tall av gangen. For å addere tre tall for eksempel, adderer vi først to av dem, og deretter adderer vi summen til det siste tallet.

Regneeksempler

Akkurat som i titallsystemet adderer vi to binære tall ved å summere kolonne for kolonne, fra høyre mot venstre. Eksemplet under viser skritt for skritt prosedyren med å utføre addisjonen 101012 + 11012 = 100102. I titallsystemet tilsvarer det 2110 + 1310 = 3410.

Addisjon i totallsystemet

Multiplikasjon kan vi også utføre på samme måte som i titallsystemet. Vi multipliserer tallet til venstre med hvert siffer av tallet til høyre, setter resultatene under hverandre, og summerer. Eksemplet under viser skritt for skritt prosedyren med å utføre multiplikasjonen 1010012 · 1102 = 111101102. I titallsystemet tilsvarer dette 4110 · 610 = 24610.

Multiplikasjon i totallsystemet

Sekstentallsystemet

Totallsystemet er kjekt for datamaskiner, men ikke så lett for mennesker å håndtere, fordi sekvensene av ettall og nuller fort blir lange og tungvinte. For mennesker er titallsystemet mye mer praktisk. Det er for eksempel atskillig enklere å tolke tallet 128583 i titallsystemet, enn motparten i totallsystemet: 11111011001000111.

Totallsystemet brukes derfor sjelden i skriftlig materiale. Men hvis vi ønsker å vise hvordan tall representeres i en datamaskin, er titallsystemet heller ikke særlig velegnet. Dersom vi f.eks. øker tallet 11112 med 1, får vi 100002, en endring som overhodet ikke gjenspeiles i at 1510 blir til 1610.

Vi slår derfor i stedet sifrene i totallsystemet sammen i grupper på fire, og representerer hver gruppe med ett enkelt symbol. En slik gruppe på fire sifre kan representere 16 forskjellige tall, og et slikt tallsystem kalles derfor sekstentallsystemet (heksadesimalsystemet). For de første10 sifrene brukes de vanlige symbolene 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Men så eksisterer det ikke flere tallsymboler. En kunne selvfølgelig oppfunnet nye symboler for å representere de neste 6 sifrene, men i stedet har en valgt å bruke bokstavene A, B, C, D, E og F. Dette er illustrert i tabellen under.

00002 = 016 00012 = 116 00102 = 216 00112 = 316
01002 = 416 01012 = 516 01102 = 616 01112 = 716
10002 = 816 10012 = 916 10102 = A16 10112 = B16
11002 = C16 11012 = D16 11102 = E16 11112 = F16

I sekstentallsystemet vil en endring fra 11112 til 100002, vises ved at F16 blir til 1016. I motsetning til titallsystemet, gjenspeiler sekstentallsystemet at sifrene i totallsystemets posisjon 0, 1, 2 og 3 er blitt satt til 0, og sifferet i posisjon 4 er blitt satt til 1.

Sekstentallsystemet er et posisjonssystem hvor sifferverdien, det vil si 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E og F, multipliseres med tallsystemets grunntall, altså 16, opphøyd i sifferets posisjonsnummer. 3F6 betyr for eksempel 3 · 162 + 15 · 161 + 6 · 160 = 3 · 256 + 15 · 16 + 6 · 1 = 1014 i titallsystemet.

Omregning mellom tallsystemene

Fra totallsystemet til titallsystemet

Multipliser sifferet lengst til høyre med 20, neste siffer med 21, neste med 22, etc., og adder resultatet.
Eksempel: 101012 = 1 · 20 + 0 · 21 + 1 · 22 + 0 · 23 + 1 · 24 = 1 · 1 + 0 · 2 + 1 · 4 + 0 · 8 + 1 · 16 = 2110.

Fra titallsystemet til totallsystemet

Del tallet på to. Blir det en rest, skriv 1. Blir det ingen rest, skriv 0. Stryk resten og del på to på nytt. Skriv 1 eller 0 til venstre for forrige siffer, alt etter om det ble rest eller ikke.
Gjenta operasjonen inntil det står null igjen.

Eksemplet under viser hvordan vi regner om 1310 til 11012.

Desimalt   Rest?   Binært
13 : 2  = 6,5    Ja   1
6 : 2  = 3,0    Nei   01
3 : 2  = 1,5    Ja   101
1 : 2  = 0,5    Ja   1101
         

Fra totallsystemet til sekstentallsystemet

Grupper sifrene 4 og 4, fra høyre mot venstre. Dersom siste gruppe har færre enn fire sifre, fyll på med nuller til venstre. Regn om ifølge tabellen i avsnittet om sekstentallsystemet.

Eksempel: 111110110010001112 = 0001 1111 0110 0100 01112 = 1F64716.

Fra sekstentallsystemet til totallsystemet

Ta utgangspunkt i tabellen i avsnittet om sekstentallsystemet og erstatt hvert siffer med de tilhørende fire sifrene i totallsystemet. Ledende nuller kan strykes.

Eksempel: 2F316 = 0010 1111 00112 = 10111100112.

Fra sekstentallsystemet til titallsystemet

Multipliser sifferet lengst til høyre med 160, neste siffer med 161, neste med 162, og så videre, og adder resultatet. Husk at A16 = 1010, B16 = 1110, C16 = 1210, D16 = 1310, E16 = 1410, F16 = 1510.

Eksempel: 2F3C16 = 12 · 160 + 3 · 161 + 15 · 162 + 2 · 163 = 12 · 1 + 3 · 16 + 15 · 256 + 2 · 4096 = 1209210

Fra titallsystemet til sekstentallsystemet

Det enkleste er nok å regne om til totallsystemet først, og deretter til sekstentallsystemet, som beskrevet i avsnittene over. Vi kan imidlertid bruke teknikken for å regne om fra ti- til totallsystemet til å regne om direkte til sekstentallsystemet. Men vi må dele på seksten, og i stedet for å skrive 1 når vi får rest, skriver vi resten multiplisert med seksten.

Eksemplet under viser hvordan vi regner om 1209210 til 2F3C16.

Desimalt Oppmultiplisert rest   Heksadesimalt
12092 : 16  = 755,75    0,75  * 16= 12    C
755 : 16  = 47,1875    0,1875  * 16 = 3   3C
47 : 16  = 2,9375    0,9375  * 16 = 15   F3C
2 : 16  = 0,125    0,125  * 16 = 2   2F3C
           

Omregning med kalkulator

Windows har en kalkulator-app som vi får fram ved å åpne Windows-menyen og skrive «kalkulator». Denne kan brukes til å regne om mellom totallsystemet (binært), åttetallsystemet (oktalt), titallsystemet (desimalt) og sekstentallsystemet (heksadesimalt).

Første gang kalkulatoren hentes fram, vises den i modus «Standard», dette endrer vi til «Programmerer» i menyen øverst til venstre.

Windows-kalkulator i programmerings-modus

HEX, DEC, OCT og BIN er til å velge tallsystem med, henholdsvis sekstentallsystemet, titallsystemet, åttetallsystemet og totallsystemet. Vil vi regne om fra titallsystemet til sekstentallsystemet, for eksempel, klikker vi på DEC, skriver inn tallet, og klikker på HEX. Vil vi regne om fra totallsystemet til titallsystemet, klikker vi på BIN, skriver inn tallet, og klikker på DEC. Kalkulatoren deaktiverer knapper med tall som ikke er gyldige i et gitt tallsystem. Velger vi BIN, er derfor bare 0 og 1 aktivert. Velger vi OCT, aktiveres i tillegg 2, 3, 4, 5, 6 og 7. Med DEC kommer også 8 og 9, og med HEX A, B, C, D, E og F.

Kilder

    • Bård Kjos: Innføring i informasjonsteknologi. Tapir Akademisk forlag, Trondheim 2005