Positionssystemet och olika talbaser

Från Wikiskola
Version från den 3 september 2019 kl. 21.49 av Hakan (diskussion | bidrag)
Hoppa till navigering Hoppa till sök
[redigera]
Mål för undervisningen Talbaser

Du kommer att lära dig om binära tal och andra talbaser samt hur man omvandlar mellan dem.


Decimala talsystemet (tiosystemet) är ett positionssystem som baseras på talet 10 och därmed använder 10 olika siffror (det normala antalet fingrar), 0–9. Sedan låter man siffrans position bestämma vilken 10-potens som siffran skall multipliceras med. På detta sätt blir talet

304 = 3·102 + 0·101 + 4·100.

CC från Wikipedia

Binära talsystemet

Det binära talsystemet är en representation för tal som har talbasen två. Det betyder att enbart två olika siffror används, ett och noll. Binära tal används praktiskt taget av alla datorer eftersom de använder digital elektronik och boolesk algebra (eller binär algebra som det också kallas). I Europa var Juan Caramuel y Lobkowitz Caramuel först med att beskriva det binära talsystemet som han då kallade Dyadik. Medan Gottfried Leibniz gjorde det känt för en bredare publik. Talsystemet upptäcktes dock långt tidigare av den forntida matematikern Pingala.

Det binära talsystemets talföljd består bara av två siffror, 0 och 1. Nästa tal är det, av de talen som kan skrivas med ettor och nollor, som kommer näst i sifferraden. Så talen blir:

[math]\displaystyle{ 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10 000 ~o.s.v }[/math]

De gamla egyptierna använde det binära talsystemet för att skriva bråktal i decimalform. De använde dock inte ettor och nollor, utan de använde sig av en symbol kallad 'Horus öga'. Olika delar av symbolen motsvarade olika positioner på höger sida om kommatecknet. Om just den delen ritades ut motsvarade det en etta på den positionen, om den utelämnades motsvarade det en nolla.

Precis som i det decimala talsystemet är den högra siffran minst signifikant. Med enbart den siffran kan talet 0 och 1 beskrivas. För att beskriva talet 2 måste en ny siffra skrivas till vänster om den första, det vill säga '10', varpå talet 3 följer representerat som '11'. Detta fortgår på samma maner ju högre upp man behöver komma.

[redigera]

Omvandla binärt till decimalt

Exempel på hur man kan skriva för att konvertera ett binärt tal till decimaltal:

Exempel
Omvandla binärt till decimalt

Om det binära talet är [math]\displaystyle{ 10101101 }[/math] så är det decimala talet

1·27 + 0·26 + 1·25 + 0·24 + 1·23 + 1·22 + 0·21 + 1·20 =
128 + 0 + 32 + 0 + 8 + 4 + 0 + 1 = 173


Exempel på hur man kan skriva för att konvertera ett tal i basen 5 till decimaltal.

Exempel
Från basen 5 till 10

Talet 32 är i basen 5. Skriv talet på basen 10.

[math]\displaystyle{ 32_5 = 3 \cdot 5^1 + 2 \cdot 5^0 = 3 \cdot 5 + 2 \cdot 1 = 17_{10} }[/math]


Omvandla decimalt till binärt

Exempel
Decimalt till binärt

Skriv talet 13710 på binär form.

Du ska skriva talet 137 som en summa av några av termerna

128, 64, 32, 16, 8, 4, 2, 1
27, 26, 25, 24, 23, 22, 21, 20
137 = 128 + 8 + 1 = 1 0 0 0 1 0 0 12


Hexadecimala talsystemet

Exempel
Omvandla från hexadecimalt till basen fem

Skriv talet 3F16 på basen fem.

Börja med att översätta till basen tio.

3F16 = 3*16 + 15*1 = 48 + 15 = 6310

Gör nu om till basen fem.

I tabellen nedan har vi prövat oss fram för att finna lämplig positionssiffra genom att börja nedifrån. Vi ser nu att 2235 = 6310 = 3F16


potenser av 5 bas 5 positionssiffra delsumma
50 1 3 3
51 5 2 10
52 25 2 50
[redigera]

Bekanta dig med tal skrivna på olika baser

  • Hur skriver man ett tal på en viss bas?
  • Vilka talbaser är vanliga?
  • Hur omvandlar man?
  • Testa apparna nedan

I teoriavsnittet nedan ska vi gå närmare in på hur man konverterar och skriver tal på olika baser.

Binära tal

Välj bas 10 eller 2 och dra i glidaren. Kontrollräkna för att se att du förstår.


[redigera]

A little tool to show an integer in all important bases quickly: Edit any of the four textfields and press enter - the three remaining Numbers will be converted.

https://www.geogebra.org/m/dDQCBAN3

[redigera]
Programmeringsuppgift

Python-hjälp och Fler uppgifter

Mål för undervisningen Kom igång med programmering i matematiken.

Målet är att du ska använda program för att utföra matematiska beräkningar. Du bör testa att modifiera algoritmen så att dina beräkningar blir mer effektiva.

Målet är inte att du ska lära dig programmering på matematiklektionen men det är oundvikligt att du ändå lär dig lite Python-kod.


Det här är ett förhållandevis komplicerat program för att komma så pass tidigt i kursen men vi testar det i alla fall och tittar på koden för att lära oss mer.

Omvandla till binärt med ett Pythonprogram

Uppgift
Binäromvandling
  1. Testa programmet med några olika tal.
  2. Gå igenom koden och läs kommentarerna. Hur fungerar programmet?

Python-koden

tal = int(input("Ange heltal att omvandla till binärt: "))

bas2 = []
if tal != 0:
    bas2h = ''
    while tal > 0:
        #Bilda biten med den högsta bitvikten
        bit = int(tal % 2)
        #Dividera bort denna
        tal = tal // 2
        #Lägg in den beräknade biten i en lista
        bas2.append(bit)
    #Vänd på listan
    #Biten med den högsta vikten lades ju in först
    #Detta är inte nödvändigt om man väljer att skriva ut listan baklänges (nedan)
    bas2.reverse()


print("Talet blir ", end="")
for bit in bas2:

    #end="" gör så att raden inte bryts och att inget skrivs ut mellan tecknen.
    print(bit, end="")
print(" i bas 2.")

#Om du inte vänder på listan:
#for i in range(len(bas2) - 1, -1, -1):
    #print(bas2[i], end="")

Uppgiften är inspirerad av Malmö stads Matematisk programmering i Python

[redigera]
Swayen till detta avsnitt: Talbaser


läromedel: Romerska tal, mm


Läs om Talsystem


NCM - Tankeläsning med binära tal

NCM-artikel - Tankeläsaren Intressant för läraren men kul trick för alla som vill.

UR-teori och övningar

UR-pdf

Decimaler och förkortningar

Exempel

Visa att [math]\displaystyle{ 0,375 = 3/8 }[/math]

Skriv talet som tusendelar i bråkform.

[math]\displaystyle{ 0,375 = \frac{375}{1000} = \frac{75}{200} = \frac{15}{40} = \frac{3}{8} }[/math]


Horners metod

En intressant egenskap i det binära talsystemet är att en multiplikation med två erhålles genom att helt enkelt skifta alla siffror en plats åt vänster och sätta dit en nolla. Denna egenskap ger följande intressanta variant av Horners metod: För att enkelt beräkna det decimala värdet av ett binärt tal i huvudet behöver du bara läsa talet från vänster och multiplicera varje delsumma med två; om den binära siffran är en etta så addera dessutom en etta till summan. Man börjar med summan 0. Med samma exempelsträng som ovan (10101101) blir det så här:

 0·2+1=1 , 1·2=2, 2·2+1=5, 5·2=10, 10·2+1=21, 21·2+1=43, 43·2=86, 86·2+1=173

CC från Wikipedia

Binärkomma

Om ett binärkomma finns närvarande så representerar siffrorna till höger om det en mot höger ökande negativ tvåpotens. Exempel:

   11,0012 = 1·21 + 1·20 + 0·2-1 + 0·2-2 + 1·2-3 = 2 + 1 + 0 + 0,125 = 3,12510

Vid representation av tal med decimaler är det dock idag mycket vanligare att använda IEEE:s flyttalsrepresentation

Wolfram

Skriv in ett tal i WolframAlpha. En bit ned på sidan ser du talet på hexadecimal, oktal och binär form. Exempel med talet 23.

Färgkoder

Läs om färgkoder

En övning på W3Schools.com: Färgkoder på hemsidor.

Testa hur det funkar i GGB

Exit ticket

Exit ticket: Talbaser