|
Fra binært til desimalt og tilbake
|
|
Datamaskinen regner med binære tall,
mens vi mennesker foretrekker tall i desimalsystemet. Konverteringen mellom
de to tallsystemer er derfor grunnleggende. Uten konvertering vil maskinen
være i praksis ubrukelig.
|
Her skal du lage et regneark der du taster inn et binært tall. Arket skal
så beregne det tilsvarende desimaltallet. Og for å sjekke at alt stemmer,
skal det konvertere desimaltallet ditt tilbake til et binært tall. Hvis
alt gikk bra, burde du da kunne konstatere overenstemmelse.
|
Her kommer noen instrukjoner: Det blir enklest dersom du skriver hvert
siffer til det binære tallet i en separat celle. Bruk navn som helper
deg i den senere beregningen, for eks. bin0 for laveste siffer,
bin1for nest-laveste, etc.
|
Omregningen fra binært til desimalt er enkelt. Formelen er
desimal = 1*bin0 + 2*bin1 + 4*bin2
+ 8*bin3 + 16*bin4
Er du enig?
|
Klart at du gir igjen et navn til cellen som inneholder desimaltallet ditt.
|
|
Å gå tilbake fra desimalt til binært, er igjen enklest dersom du
behandler hvert binært siffer separat, i hver sin celle. Bruk nye navn,
som for eks. testbin0, testbin1, etc.
|
Den laveste posisjon er 0 dersom desimaltallet er et partall, og 1 dersom det
er oddetall. Med andre ord, det avhenger av resten som du får ved
divisjon med 2. Her kan du bruke REST() funksjonen. På engelsk vil
det være MOD(), for modulo.
testbin0 = REST(desimal; 2)
|
Neste siffer får du ved å dividere desimaltallet med 2, og så
utføre samme sjekk. Men du må fjerne effekten av den laveste
posisjonen.
testbin1 = REST(desimal - 1*testbin0)/2; 2)
|
Tilsvarende er formelen for neste posisjon
testbin2 = REST(desimal - 1*testbin0
- 2*testbin1)/2; 2)
Dette fortsetter i samme stilen -- får du det til å fungere?
|
|
Nå er det enkelt å bygge en binær teller.
|