Positionssystem

Från testwiki
Hoppa till navigering Hoppa till sök

Mall:Fler källor Ett positionssystem är en typ av talsystem där talvärdet av en sifferföljd som inte bara bestäms av siffrornas tilldelade värden, utan även av deras positioner i följden. Detta skiljer sig från till exempel det romerska talsystemet, där ett tals värde fastställs genom addition och subtraktion av de olika ”siffrorna”. Det decimala talsystemet med arabiska siffror som är det vanligaste sättet att skriva tal på i västvärlden, är ett positionssystem med basen tio.

I ett positionssystem anger varje siffra ett antal av en potens av systemets talbas, och varje position har en bestämd potens. Talets värde erhålls genom att multiplicera talets siffror med sina potenser, vars storlek är beroende av siffrornas inbördes position, och därefter summeras produkterna.[1] När talet 12 skrivs i decimalsystemet så ligger ettan på tiotalets plats (10¹) och tvåan på entalets plats (10⁰). Dessa summeras för att få talets värde: 1×10 + 2×1 = 12.

Introduktion

Talet 3526 kan även skrivas som 31000+5100+210+6, eller uttryckt med tiopotenser, som 3103+5102+2101+6100.

Ett heltal i 10-systemet kan alltså skrivas som sn10n+sn110n1++s1101+s0100, där 0si9.

Talet 23 kan beskrivas som 23100, men för att varje position skall utgöras av en enda siffra, skrivs det som 2101+3100. Motsvarande gäller även andra baser.

Allmänt om olika talbassystem

Hur ett tal beskrivs i bas b
Notation i bas b: s4 s3 s2 s1 s0
Positionsvärde: b4 b3 b2 b1 b0
Talets värde: s4b4+s3b3+s2b2+s1b1+s0b0

Det som utmärker det vanliga 10-bassystem är att det är baserat på potenser av 10. På samma sätt kan andra tal användas som bas. För att generalisera konceptet, kan basen betecknas b. Tabellen till höger visar hur tal uttrycks i bas b.

För att ange vilken bas ett tal är skrivet i, skrivs basen med nedsänkt tal efter representationen. Till exempel så kan talet 513 förtydligas genom att skriva det som 51310. Allmänt antas ett tal vara uttryckt enligt 10-systemet om det saknar basangivelse.

Siffrorna som används i en bas b är alltid 0 till b1, eftersom det går att växla till nästa valör på samma sätt som i 10-bassystemet; (b+s)bn kan skrivas om till bn+1+sbn där s<b.

Om ett tal skrivs i bas b, så är varje siffra i det talets representation mindre än b.

Heltal i andra baser

Notation i bas 2: 1 1 1 0 0
Positionsvärde: 24 23 22 21 20
Talets värde: 16+8+4+0+0

Ett annat exempel är talet 111002. Om "växlingstabellen" används så ser man att detta representerar talet 124+123+122+021+020=16+8+4=28. 111002 är alltså talet 2810.

I högre baser än 10 uppstår ett problem. Uttrycket 12213 kan både tolkas som 12131+2130=161, eller som 1132+2131+2130=197. En lösning är att exempelvis gruppera siffrorna tydligare: [12,2]13 är representation för 161 i bas 13, medan [1,2,2]13 är representation för talet 197.

Ett annat alternativ är att utöka de första 10 (arabiska) siffrorna (0-9) med bokstäver. Som exempel skulle A=10, B=11, C=12, D=13, E=14 och F=15. [13,15]16 då bli CF16. Detta skrivsätt används ofta inom IT-världen, speciellt inom programmering. Då datorn internt arbetar i bas 2 med enbart nollor och ettor, så kallade binära tal, har talen på detta skrivsätt relativt många positioner: 25510 = 111111112. En manuell omvandling till decimaltal kan förenklas genom att gruppera de binära siffrorna 0 och 1 i grupper om fyra, och därmed reducera antalet positioner från åtta till två. Problemet är att 11112 = 18+14+12+11= 1510, alltså 2 siffror, medan talet i basen, 16, kan representeras av en enda siffra, F16 (=1510 enligt ovan). 111111112 vore då FF16. På detta sätt kan representationen av ett tal omvandlas relativt lätt mellan dessa två talsystem utan komplicerade beräkningar.

Exempel 1: Konvertering av tal till basen 10

Talet 63427 i basen 10

Talet skrivs upp enligt mallen och beräknas ganska enkelt i basen 10.

Notation i bas 7: 6 3 4 2
Positionsvärde: 73 72 71 70
Talets värde: 673+372+471+270

63427 är då 673+372+471+270=2235.

Talet [14,2,70]81 i bas 10

Med användning av växlingstabellen skrivs

Notation i bas 81: 14 2 70
Positionsvärde: 812 811 810
Talets värde: 14812+2811+70810

Vi får då att talet är 146561+281+701=92086.

Talet [2,2,0,10,12,12,4]16 i basen 16

Notation i bas 16: 2 2 0 10 12 12 4
Positionsvärde: 26 25 04 103 122 121 40
Talets värde: 2166+2165+0164+10163+12162+12161+4160

Då fås att talet är 216777216+21048576+065536+104096+12256+1216+41=35695812.

Exempel 2: Konvertering av tal från basen 10

Talet 15410 i basen 16

Föreställ 154 enkronor på bordet, som ska växlas till mynt med valörerna {160,161,162,}={1,16,256,}. 256-mynten är för stora, så det räcker med 16-mynten och 1-mynten. Hur många 16-mynt kan då behövas?

15416=9+1016 visar att 154 räcker till 9 hela 16-kronorsmynt. De resterande mynten får då vara kvar som enkronor. Alltså kan 154 enkronor växlas till 9161+10160=[9,10].

Talet 163210 i bas 3?

1632 enkronor ska växlas till mynt i valörerna 30,31,32,=1,3,9,27,81,243,729,2187

Samma princip som ovan ger då att

1632=2729+174 (1458 mynt växlas till 2 stycken 729-sedlar).

Fortsätter växlingen till mynt fås

1632=236+281+12

1632=236+234+19+3

1632=236+234+132+131

Uttryckt som en summa av alla mynttyper fås 236+035+234+033+132+131+030.

Läses nu antalet mynt av varje sort fås 20201103. Alltså gäller 163210=20201103

Decimaltal i andra baser

Decimaltal i andra baser fungerar på precis samma sätt som när det fanns 10-öresmynt och 1-öresmynt, (som motsvarar 101-kronorsmynt och 102-kronorsmynt). I dessa fall är det inte ovanligt att resultatet blir en oändlig decimalutveckling, vilket ses i följande exempel:

Exempel 1: Decimaltal till basen 3

Talet 1,510 i basen 3.

Valörerna talet ska växlas till är {30,31,32,}={1,13,19,}.

Det kan sägas att det finns två högar, en med mynt i bas 10, och en med mynt i bas 3. Genom att successivt växla från den ena högen till den andra genom att flytta största möjliga valör fås följande:

Antal i bas 10 Antal i bas 3
1,5=32 0
321130=12 30
121131=16 30+31
161132=118 30+31+32
1181133=154 30+31+32+33

Fortsätter utvecklingen oändligt länge framkommer att 1,510 = 1,11111111...3. Talet 1,5 har alltså oändlig decimalutveckling i bas 3.

Exempel 2: Decimaltal till basen 4

Talet 12,510 i basen 4.

På samma sätt som i förra exemplet:

Antal i bas 10 Antal i bas 4
12,5 0
12,534=0,5 34
0,5214=0 34+214

Här tog det slut mycket snabbare: 12,510=𝟑41+𝟎40+𝟐41=30,24

Räkneoperationer i andra baser

De vanliga räknesätten kan utföras i andra positionssystem precis som i basen 10.

Exempel 1: Att addera två tal i en annan bas

Utför additionen 121,23+1023.

Addera siffrorna var för sig precis som med vanlig addition, med undantaget att 13+13+13=103.

Värde 33 32 31 30 31
 
Minne 1 1 1    
Tal 1   1 2 1, 2
Tal 2   1 0 2, 0

Summa 1 0 0 0, 2

Svaret blir alltså 1000,23.

Exempel 2: Subtrahera två tal i en annan bas

Beräkna [3,0,12,5]14[1,9,1,4]14

Här ställs en tabell upp som med vanlig subtraktion, och som vanligt så "lånas" från nästa siffra om det måste dras ett större tal från ett mindre.

(Att dra 11 enkronor från 1 enkrona och 3 stycken 14-kronor löses ju genom att 14-kronan växlas till enkronor, och på liknande sätt för större valörer.)

Värde 143 142 141 140
 
Minne   14    
Tal 1 3 0 12 5
Tal 2 1 9 1 4

Differens 1 5 11 1

Svaret blir [1,5,11,1]14.

Exempel 3: Multiplicera två tal i en annan bas

Utför multiplikationen talen 102131223

Uppställning för multiplikation:

Värde   36 35 34 33 32 31 30
 
        1 0 2 1
        1 2 2

𝟐𝟑𝟏𝟎𝟐𝟏𝟑         2 1 1 2
𝟐𝟑𝟏𝟎𝟐𝟏𝟑       2 1 1 2  
𝟏𝟑𝟏𝟎𝟐𝟏𝟑   + 1 0 2 1    

Nu måste additionen utföras. Det görs extra tydligt här med minnessiffror. Kom ihåg att 13+23=103.

 
Minne     1 2 1 1    
        2 1 1 2
      2 1 1 2 0
  + 1 0 2 1 0 0

Summa     2 1 0 1 0 2

Alltså gäller det att 102131223=2101023

Källor

Mall:Talsystem