Positionssystemet och olika talbaser: Skillnad mellan sidversioner

Från Wikiskola
Hoppa till navigering Hoppa till sök
 
(34 mellanliggande sidversioner av 2 användare visas inte)
Rad 1: Rad 1:
{|
__NOTOC__
|-
= Teori =
| {{malruta | Talbaser
 
{{malruta | Talbaser


Du kommer att lära dig om binära tal och andra talbaser samt hur man omvandlar mellan dem.  
Du kommer att lära dig om binära tal och andra talbaser samt hur man omvandlar mellan dem.  
}} |
}}
| {{sway | [https://sway.com/ZeXlAKGoAr0CrRwB?ref{{=}}Link Talbaser] }}<br />
{{gleerups| [https://gleerupsportal.se/laromedel/exponent-1c/article/51e05b19-539b-4fce-a418-8ac8e8858d33 Romerska tal, mm] }}<br />
{{matteboken |[https://www.matteboken.se/lektioner/matte-1/tal/talsystem Talsystem] }}<br />
|}
 
== Aktivitet ==
 
=== 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.<br />
 
<html>
<iframe scrolling="no" title="" src="https://www.geogebra.org/material/iframe/id/PAN3HuJ5/width/800/height/450/border/888888/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/false/rc/false/ld/false/sdz/false/ctl/false" width="800px" height="450px" style="border:0px;"> </iframe>
</html>
<br />


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. <br />
=== Decimala talsystemet ===
 
<html>
<iframe scrolling="no" title="Number Base Converter" src="https://www.geogebra.org/material/iframe/id/rvhaSZPH/width/584/height/366/border/888888/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/true/rc/false/ld/false/sdz/true/ctl/false" width="584px" height="366px" style="border:0px;"> </iframe>
</html>
https://www.geogebra.org/m/dDQCBAN3
 
=== Pythonprogram ===
 
{{Python|[[Omvandla till binärt med Python]]}}
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.
{{clear}}
 
== Teori ==


'''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     
'''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     
Rad 64: Rad 28:


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.
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.
=== Talsystem med olika baser ===
Det finns flera olika talsystem som är uppbyggda med andra antal siffror än det binära talsystemet och det decimala talsystemet. Alla olika talsystem har en bas som anger hur många siffror vi får använda i just det talsystemet. Om vi tar ett talsystem med basen 5, då får vi bara använda fem siffror (0, 1, 2, 3 och 4). Precis som med det decimala talsystemet (som har basen tio) och det binära talsystemet (som har basen två) så är det positionerna på ett tal som anger hur mycket en siffra är värd. Alla dessa talsystem med olika baser är också positionssytem.
Om vi har talet 343 skrivet i basen fem, kan vi skriva det som 343<sub>5</sub> för att förtydliga att vi menar just basen fem. Vill vi skriva om talet till bas tio gör vi följande:
343<sub>5</sub> = (3⋅5<sup>2</sup> + 4⋅5<sup>1</sup> + 3⋅5<sup>0</sup>)<sub>10</sub> = (3⋅25 + 4⋅ 5 +3⋅1)<sub>10</sub> = 98<sub>10</sub>
Ett tal med basen fem menar då att positionerna, från höger till vänster, betyder ental, femtal, tjugofemtal, hundratjugofemtal, och så vidare.
''Detta stycke kommer från [https://www.matteboken.se/lektioner/matte-1/tal/talsystem Matteboken.se]''
= Exempel =


==== Omvandla binärt till decimalt====
==== Omvandla binärt till decimalt====
Rad 76: Rad 53:
   
   
:  128 + 0 + 32 + 0 + 8 + 4 + 0 + 1 {{=}} 173
:  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.
{{exruta| '''Från basen 5 till 10'''
Talet 32 är i basen 5. Skriv talet på basen 10.
: <math>32_5 = 3 \cdot 5^1 + 2 \cdot 5^0 = 3 \cdot 5 + 2 \cdot 1 = 17_{10} </math>
}}
}}


Rad 95: Rad 80:
=== Hexadecimala talsystemet ===
=== Hexadecimala talsystemet ===


{{uppgruta| '''Omvandla från hexadecimalt till basen fem'''
{{exruta| '''Omvandla från hexadecimalt till basen fem'''


Skriv talet F3<sub>16</sub> på basen fem.
Skriv talet 3F<sub>16</sub> på basen fem.


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


: F3<sub>16</sub> {{=}} 3*16 + 15*1 {{=}} 48 + 15 {{=}} 63<sub>10</sub>
: 3F<sub>16</sub> {{=}} 3*16 + 15*1 {{=}} 48 + 15 {{=}} 63<sub>10</sub>


Gör nu om till basen fem.
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 '''143<sub>5</sub>''' {{=}} 635<sup>10</sup> {{=}}3F5<sup>16</sup>
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 '''223<sub>5</sub>''' {{=}} 63<sub>10</sub> {{=}} 3F<sub>16</sub>
}}
}}


Rad 114: Rad 99:
| 5<sup>0</sup>|| 1|| 3|| 3
| 5<sup>0</sup>|| 1|| 3|| 3
|-
|-
| 5<sup>1</sup>|| 5|| 4|| 20
| 5<sup>1</sup>|| 5|| 2|| 10
|-
|-
| 5<sup>2</sup>|| 25|| 1|| 25
| 5<sup>2</sup>|| 25|| 2|| 50
|}
|}


== Lär mer ==
= Aktivitet =
 
=== 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.<br />
 
<html>
<iframe scrolling="no" title="" src="https://www.geogebra.org/material/iframe/id/PAN3HuJ5/width/800/height/450/border/888888/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/false/rc/false/ld/false/sdz/false/ctl/false" width="800px" height="450px" style="border:0px;"> </iframe>
</html>
<br />
 
= GeoGebra =
 
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. <br />
 
<html>
<iframe scrolling="no" title="Number Base Converter" src="https://www.geogebra.org/material/iframe/id/rvhaSZPH/width/584/height/366/border/888888/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/true/rc/false/ld/false/sdz/true/ctl/false" width="584px" height="366px" style="border:0px;"> </iframe>
</html>
https://www.geogebra.org/m/dDQCBAN3
 
= Pythonprogram =
 
[[Kategori:Python]] [[Kategori:Ma1c]] [[Kategori:Aritmetik]] 
{{python|[[Python|Python-hjälp]] och [https://wikiskola.se/index.php?title{{=}}Kategori:Python Fler uppgifter]}}
{{malruta| '''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 ==
 
{{uppgruta| '''Binäromvandling'''
 
# Testa programmet med några olika tal.
# Gå igenom koden och läs kommentarerna. Hur fungerar programmet?
}}
{{clear}}
 
== Python-koden ==
 
<pre>
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="")
</pre>
 
Uppgiften är inspirerad av Malmö stads [https://sites.google.com/skola.malmo.se/programmeringsfortbildning/kursmaterial/tr%C3%A4ff-5?authuser=0 Matematisk programmering i Python]
 
= Lär mer =
 
{| wikitable align=right
|-
| {{sway | [https://sway.com/ZeXlAKGoAr0CrRwB?ref{{=}}Link Talbaser] }}<br />
{{gleerups| [https://gleerupsportal.se/laromedel/exponent-1c/article/51e05b19-539b-4fce-a418-8ac8e8858d33 Romerska tal, mm] }}<br />
{{matteboken |[https://www.matteboken.se/lektioner/matte-1/tal/talsystem Talsystem] }}<br />
|}


=== NCM - Tankeläsning med binära tal ===
=== NCM - Tankeläsning med binära tal ===
[http://ncm.gu.se/pdf/namnaren/3234_08_4.pdf NCM-pdf]
[http://ncm.gu.se/pdf/namnaren/3234_08_4.pdf NCM-artikel - Tankeläsaren] Intressant för läraren men kul trick för alla som vill.


=== UR-teori och övningar ===
=== UR-teori och övningar ===
Rad 168: Rad 247:
<iframe scrolling="no" title="" src="https://www.geogebra.org/material/iframe/id/jyk3M9kw/width/1015/height/556/border/888888/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/false/rc/false/ld/false/sdz/false/ctl/false" width="1015px" height="556px" style="border:0px;"> </iframe>
<iframe scrolling="no" title="" src="https://www.geogebra.org/material/iframe/id/jyk3M9kw/width/1015/height/556/border/888888/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/false/rc/false/ld/false/sdz/false/ctl/false" width="1015px" height="556px" style="border:0px;"> </iframe>
</html>
</html>


== Exit ticket ==
== Exit ticket ==


Exit ticket: Talbaser
Exit ticket: Talbaser
<headertabs />

Nuvarande version från 3 september 2019 kl. 22.02

[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

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.

Talsystem med olika baser

Det finns flera olika talsystem som är uppbyggda med andra antal siffror än det binära talsystemet och det decimala talsystemet. Alla olika talsystem har en bas som anger hur många siffror vi får använda i just det talsystemet. Om vi tar ett talsystem med basen 5, då får vi bara använda fem siffror (0, 1, 2, 3 och 4). Precis som med det decimala talsystemet (som har basen tio) och det binära talsystemet (som har basen två) så är det positionerna på ett tal som anger hur mycket en siffra är värd. Alla dessa talsystem med olika baser är också positionssytem.

Om vi har talet 343 skrivet i basen fem, kan vi skriva det som 3435 för att förtydliga att vi menar just basen fem. Vill vi skriva om talet till bas tio gör vi följande:

3435 = (3⋅52 + 4⋅51 + 3⋅50)10 = (3⋅25 + 4⋅ 5 +3⋅1)10 = 9810 Ett tal med basen fem menar då att positionerna, från höger till vänster, betyder ental, femtal, tjugofemtal, hundratjugofemtal, och så vidare.

Detta stycke kommer från Matteboken.se

[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