Totallsystemet

Det tallsystemet vi lærer på skolen og som er mest brukt i verden i dag, ble introdusert til Europa fra arabisktalende land, og kalles derfor gjerne det arabiske tallsystemet. Det består av ti unike symboler; 0, 1, 2, 3, 4, 5, 6, 7, 8 og 9 og kalles derfor også titallsystemet.

Men i en datamaskin er det totallsystemet som regjerer. Det består av bare to unike symboler: 0 og 1. Hvorfor er det slik, og hvordan virker det?

Tall og tallsymboler

I titallsystemet er det slik at hvert symbol 0-9 representerer et bestemt tall. Men hvordan representerer vi tall som er større enn 9? Når vi har telt til 9, er vi tomme for tallsymboler. Dette løses ved å innføre tierplassen. Når et tallsymbol står på tierplassen betyr det at verdien av symbolet som står der skal ganges med ti.

Tallet 10 består av to siffer. Det første sifferet er 1, og det betyr at tallet inneholder én tier. Det andre sifferet er 0, og det betyr at tallet ikke inneholder noen flere enere. Verdien er altså 1 · 10 + 0 · 1. Tallet 37 inneholder tre tiere og sju enere og har verdien 3 · 10 + 7 · 1.
På denne måten kan vi ved hjelp av bare to siffer representere alle tall opp til 99. For å komme videre fra 99, trenger vi å innføre hundrerplassen. Siffer som står på hundrerplassen skal ganges med hundre. Tallet 368 har tre siffer, og det har verdien 3 · 100 + 6 · 10 + 8 · 1. Dette kan også skrives slik: 3 · 102 + 6 · 101 + 8 · 100. Med både hundrerplass, tierplass og enerplass kan vi representere tall helt opp til 999. For høyere tall må vi innføre tusenplass, titusenplass osv. Tallet 54 810 består av fem siffer og har verdien 5 · 104 + 5 · 103 + 8 · 102 + 1 · 101 + 0 · 100.

Verdien til et siffer i det arabiske tallsystemet er helt avhengig av om det står på enerplassen eller hundrerplassen, og det arabiske tallsystemet er derfor et eksempel på et posisjonsbasert tallsystem. Men det er langt i fra det eneste mulige posisjonsbaserte tallsystemet. Når tallsystemet vårt har ti tallsymboler, tror historikerne det skyldes at det er vanlig og enkelt å telle på fingrene. Ved å bruke flere eller færre unike symboler kan man lage sjutallsystem, fjortentallsystem, osv.

Så la oss først reise til planeten Hexa der de har åtte fingre på hver hånd, altså seksten fingre til sammen. Her har det derfor utviklet seg et sekstentallsystem, med seksten unike tallsymboler. Hexas symbolrekke ser slik ut: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Sifrene 0–9 betyr det samme som i titallsystemet vårt mens A betyr ti, B betyr elleve, C betyr tolv, D betyr tretten, E betyr fjorten og F betyr femten.
Når vi har telt til F (altså femten) er vi tomme for tallsymboler, og for å kunne skrive tallet seksten innfører vi sekstenplassen. Et siffer på sekstenplassen betyr at verdien av sifferet som står der skal ganges med seksten.
Tallet seksten kan vi da skrive slik: 10. Det første sifferet er 1, og det betyr at tallet inneholder en sekstener. Det andre sifferet er 0, og det betyr at tallet ikke inneholder enere. Verdien er altså (skrevet i titallsystemet) 1 · 16 + 0 · 1. Tallet 37 inneholder tre sekstenere og sju enere og har verdien (skrevet i titallsystemet) 3 · 16 + 7 · 1, altså femtifem. Tallet 5A inneholder 5 sektenere og A enere og har verdien (skrevet i titallsystemet) 5 · 16 + 10 · 1, altså nitti.

Det største tallet som kan skrives med to siffer i sekstentallsystemet er FF, tohundreogfemtifem. For å kunne lage større tall må vi innføre tohundreogfemtiseksplassen (256 = 16 ∙ 16 = 162). Sifferet som står på tohundreogfemtiseksplassen skal ganges med tohundreogfemtiseks. Tallet 368 i sekstentallsystemet har tre siffer, og det har verdien (skrevet i titallsystemet) 3 · 256 + 6 · 16 + 8 · 1 eller 3 · 162 + 6 · 161 + 8 · 160. Tallet 4A1F8 i sekstentallsystemet består av fem siffer og har verdien (skrevet i titallsystemet) 4 · 164 + 10 · 163 + 1 · 162 + 15 · 161 + 8 · 160 = 303 608.

Sekstentallsystemet kalles også det heksadesimale tallsystemet og er mye brukt i forbindelse med datamaskiner. På mange kalkulatorer kan du leke deg med å skrive inn et tall i titallsystemet (ofte forkortet Dec) og gjøre det om til et tall i sekstentallsystemet (ofte forkortet Hex), eller omvendt. På PC-kalkulatoren (Win7) velger du «Programmerer»-modus ("Vis" og "Porgrammerer" eller Alt+3).

Totallsystemet

Du har sikkert forstått det allerede – totallsystemet er et tallsystem med bare to tallsymboler. Det er vanlig å bruke de to første tallsymbolene i titallsystemet som symbol for de to tallene i totallsystemet, altså 0 og 1.

På samme måte som titallsystemet er praktisk for tifingrede mennesker, er det praktiske grunner til at akkurat totallsystemet eller det binære tallsystemet er nærmest enerådende i dagens digitale verden. I den tidlige fasen av utviklingen av datamaskinen var det hensiktsmessig å bruke elektriske av/på-brytere, og disse har bare to mulige tilstander (AV eller PÅ). Ved å la AV og PÅ representere de to mulige sifrene i totallsystemet, kan en maskin som består av av/på-brytere utføre beregninger.
I moderne digital teknologi er de to tallsymbolene representert på ulike måter. I forbindelse med elektriske kretser er det vanlig å definere to spenningsnivåer: HØY spenning og LAV spenning. I mange sammenhenger er HØY spenning spenninger omkring 5 V, mens LAV spenning er spenninger omkring 0 V. På en tradisjonell harddisk er de to tallsymbolene representert ved ulike magnetiseringsretninger. I en fiberkabel er de to symbolene representert ved små endringer i lysets amplitude og frekvens.

Når vi teller i totallsystemet har vi «brukt opp» alle tallsymbolene allerede når vi har kommet til 1. For å kunne skrive tallet to innfører vi toerplassen. Et siffer på toerplassen betyr at verdien av sifferet som står der skal ganges med to.
Tallet to kan vi altså skrive slik: 10. Det første sifferet er 1, og det betyr at tallet inneholder en toer. Det andre sifferet er 0, og det betyr at tallet ikke inneholder enere. Verdien er altså (skrevet i titallsystemet) 1 · 2 + 0 · 1. Tallet 11 i totallsystemet inneholder en toer og en ener og har verdien 1 · 2 + 1 · 1, altså tre. 
Tallet 11 er også det største tallet som kan skrives med to siffer i totallsystemet. For å kunne lage større tall må vi innføre firerplassen. Sifferet som står på firerplassen skal ganges med fire. Tallet 101 i totallsystemet har tre siffer, og det har verdien (skrevet i titallsystemet) 1 · 4 + 0 · 2 + 1 · 1 eller 1 · 22 + 0 · 21 + 1 · 20. Tallet 11010 i totallsystemet består av fem siffer og har verdien (skrevet i titallsystemet) 1 · 24 + 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20 = 26.

Tabellen nedenfor oppsummerer hvordan tallene fra null til sytten skrives i ulike tallsystemer.

Norsk Titallsystemet     
Sekstentallsystemet     
Totallsystemet      
Null

0

0

0

En

1

1

1

To

2

2

10

Tre

3

3

11

Fire

4

4

100

Fem

5

5

101

Seks

6

6

110

Sju

7

7

111

Åtte

8

8

1000

Ni

9

9

1001

Ti

10

A

1010

Elleve

11

B

1011

Tolv

12

C

1100

Tretten

13

D

1101

Fjorten

14

E

1110

Femten

15

F

1111

Seksten

16

G

10000

Sytten

17

H

10001

Tallene fra en til sytten representert på fire ulike måter.

 

Av historiske grunner kalles siffer i totallsystemet gjerne for bits. Tabellen over viser at vi med fire bits kan representere tallene fra 0 til 15. På en lyd-CD er målepunktene lagret med 16 bits, noe som tilsvarer tallene fra 0 til 65 535. I en 64-bits prosessor som er vanlig i dag, kan prosessoren regne med heltall fra 0 til 18 446 744 073 709 551 616. På internett kan du finne ut mer om hvordan man kan representere og regne med negative tall og kommatall ved hjelp av det binære tallsystemet.

Beregninger i totallsystemet

Beregninger blir annerledes i totallsystemet. Ofte kan kompliserte regneoperasjoner reduseres til enklere operasjoner som gjentas mange ganger. Det er en fordel når man skal bygge en regnemaskin.

----

Eksempel:

En grunnleggende funksjon i en prosessor er dobling av et vilkårlig tall. Forklar prinsippet for hvordan dette foregår.

Løsning:

I titallsystemet er det spesielt enkelt å multiplisere et tall med ti. Vi bare føyer til en 0 bakerst og forskyver resten av sifrene en plass til venstre. Dette skrives slik: 54 810 · 10 = 548 100
Merk at sifferet 5 som sto på titusenplassen, nå står på hundretusenplassen, sifferet 4 som sto på tusenplassen står nå på titusenplassen osv.

På samme måte vil multiplikasjon med to i totallsystemet bare innebære en forskyvning av sifrene eller bitsene mot venstre. En dobling av seks (110) kan skrives slik i totallsystemet: 0110 · 10. Merk at sifferet 1 som sto på firerplassen, nå står på åtterplassen, mens sifferet 1 som sto på toerplassen nå står på firerplassen osv.

En doblingsoperasjon i en prosessor består altså bare av at alle bitsene i tallet som skal dobles forskyves et hakk mot venstre. En bitsforskyvning kalles en «shift»-operasjon på fagspråket.

Kan du tenke deg andre funksjoner enn dobling som kan utføres ved hjelp av shift-operasjoner?

----

Eksempel:

Forklar prinsippet for hvordan addisjon av to vilkårlige tall foregår i en prosessor.

Løsning:

Når du legger sammen to tall regner du kanskje i hodet. Men i barneskolen lærte du også en metode for addisjon som alltid gir riktig svar når den utføres riktig. I denne metoden setter du de to tallene som skal adderes under hverandre. Det er viktig å plassere de slik at enerplassen i det ene tallet står rett over enerplassen i det andre tallet, og tilsvarende for tierplassen, hundrerplassen osv. Vi kan si at sifrene med samme verdi står i samme kolonne.
Først summeres sifrene på enerplassen i begge tallene. Summen noteres nedenfor streken i samme kolonne. Men dersom summen blir over 9, må vi i tillegg legge på en tier på tierplassen. Dette markeres ved å sette «en tier i mente», se figur. Menten legges sammen med de andre tierne i tierkolonnen til en ny sum, med en eventuell ny mente. Slik fortsetter det i hundrerkolonnen, tusenkolonnen osv. På denne måten er du i stand til å legge sammen enormt store tall ved hjelp av en forholdsvis enkel prosedyre som gjentas mange ganger.

Addisjon i totallsystemet foregår på samme måte. Først legger vi sammen sifrene i enerkolonnen. Dersom summen blir null eller en får vi en null eller en på enerplassen i svaret. Om summen blir to (10) får vi null på enerplassen i svaret, men vi legger på en mente i toerkolonnen. Menten legges ammen med de andre sifrene i toerkolonnen til en ny sum, med en eventuell ny mente til firerkolonnen. Slik fortsetter det mot venstre til alle kolonnene er beregnet.

 

 Prøv selv å legge sammen sju og seks i totallsystemet for hånd! Fikk du tretten?Prøv selv å legge sammen sju og seks i totallsystemet for hånd! Fikk du tretten?

 

 

 

 

 

 

 

 

I en enkelt kolonne er det altså tre sifre (bits) som skal legges sammen: et siffer fra det ene tallet, et siffer fra det andre tallet samt en eventuell mente.

Vi kan kalle de tre bitsene A, B og C. En regnemaskin må kunne legge sammen disse tre sifrene og vite svaret uansett hvilken verdi bitsene har. Siden vi jobber i totallsystemet er det ikke så mange ulike regnestykker som kan dukke opp. Faktisk er det bare åtte ulike regnestykker det er mulig å få i en kolonne: 
0 + 0 + 0, 0 + 0 + 1, 0 + 1 + 0, 1 + 0 + 0, 0 + 1 + 1, 1 + 0 + 1, 1 + 1 + 0 og 1 + 1 + 1.
På disse åtte regnestykkene er det bare tre mulige svar. Summen kan bli null (00), en (01), to (10) eller tre (11). Vi kan sette opp alle mulige regnestykker og svar i en verditabell:

 

Full-adderer  

   A   

   B   

   C   

   Sum (Norsk)   

   Sum (totallsystemet)   

   M    

   S   

0

0

0

Null

00

0

0

0

0

1

En

01

0

1

0

1

0

En

01

0

1

0

1

1

To

10

1

0

1

0

0

En

01

0

1

1

0

1

To

10

1

0

1

1

0

To

10

1

0

1

1

1

Tre

11

1

1

 

Hver rad i tabellen viser mulige verdier av bitsene A, B og C, samt summen skrevet på norsk og i totallsystemet. Lengst til høyre i tabellen er de to sifrene i summen delt opp i sifferet S som skal skrives på sumplassen i den aktuelle kolonnen i regnestykket, og M som er mente som skal legges til i neste kolonne.
En maskin som kan legge sammen tre bits på denne måten, kalles en full-adderer. Ved å bruke mange full-adderere, kan vi bygge en maskin som kan legge sammen store tall i totallsystemet.

En moderne prosessor inneholder alltid en slik addisjonsmaskin.