Hva blir tallet i totallsystemet som starter med 1 og har 16 nuller etter seg hvis vi regner det om til et tall i titallsystemet?
Løsning
1-tallet står på plassen som tilsvarer potensen 216.
100000000000000002=1·216=6553610
1.1.104
a) Legg sammen 378 og 742 manuelt ved å sette dem under hverandre.
Løsning
31718+742=1120
b) Legg sammen 10 1012 og 1 1102 på tilsvarende måte.
Løsning
1101101+1110=100011
1.1.105 – utfordring!
a) Skriv en algoritme for et program som gjør om et tall i totallsystemet til et tall i titallsystemet.
Løsning
Vi tar utgangspunkt i framgangsmåten i oppgaven over, der vi gjør om fra et tall i totallsystemet til et tall i titallsystemet ved regning. Vi lar programmet ta siffer for siffer og multiplisere hvert siffer med riktig toerpotens .
La brukeren av programmet skrive inn det binære tallet.
Finn lengden av tallet, altså hvor mange sifre tallet har.
Lag ei løkke som sjekker hvert siffer, og dersom sifferet er 1, multipliseres 1 med den tilhørende toerpotensen. Resultatet legges til en variabel for tallet i titallsystemet.
Skriv innholdet av variabelen til skjermen.
b) Skriv koden til programmet.
Tips til oppgaven
Her kan det være lurt å bruke ei for-løkke. Husk at det er mange måter å løse dette på.
Løsning
c) Skriv en algoritme for et program som gjør om et tall i titallsystemet til et binært tall.
Løsning
Vi må finne ut hvordan tallet skrives på utvidet form i totallsystemet, som betyr at vi må skrive tallet som en sum av toerpotenser.
La brukeren skrive inn tallet i titallsystemet som skal gjøres om.
Først må vi finne den største toerpotensen som er mindre enn tallet som skal gjøres om. (For tallet 100 er 26=64 den største toerpotensen som er mindre enn tallet.) Dette kan vi gjøre ved å prøve med 2 opphøyd i 0, 2 opphøyd i 1 og så videre, helt til toerpotensen blir større enn tallet som skal gjøres om.
Vi regner ut hvor stor resten blir når vi trekker fra denne toerpotensen. Vi får sifferet "1" for denne potensen.
Så må vi sjekke om resultatet er positivt eller negativt ved å trekke den nest største toerpotensen fra resten. Er resultatet negativt, betyr det at resten er mindre enn den nest største toerpotensen, som gir sifferet "0" på denne posisjonen i det binære tallet. Er resultatet positivt eller null, får vi sifferet "1" på denne posisjonen, og vi trekker denne toerpotensen fra resten. Så gjentar vi denne prosessen til vi har kommet til 2 opphøyd i 0.