Lukujärjestelmät ja lukujen esittäminenB = Bi · 2i 0 1 0 1 1 0 0 0 ANSI/IEEE Std 754-2008
Lukujärjestelmät ja lukujen esittäminen
B = Bi · 2i 0 1 0 1 1 0 0 0 ANSI/IEEE Std 754-2008
Johdanto
Tässä luvussa
esitellään kaksi- eli binaarilukujärjestelmä sekä kahdeksan- ja kuusitoistajärjestelmät
esitetään etumerkittömien ja etumerkillä varustettujen lukujen esitys digitaalilaitteissa
esitetään kokonais- ja kiinteän pilkun binaarilukujen esitys digitaalilaitteissa
käsitellään binaarilukujen esitysmuodot, erityisesti kahden komplementtiesitys
esitetään luvun muunnos etumerkki-itseisarvoesityksestä kahden komplementtiesitykseen ja kääntäen
esitetään kahden komplementtimuotoisen luvun sananpituuden muuttaminen
esitetään liukuvan pilkun lukujen esitys digitaalilaitteissa
Luvun tavoitteena on
oppia tuntemaan digitaalitekniikassa yleisesti käytettävät lukujärjestelmät ja lukujen esitystavat ja -muodot
Lukujärjestelmät
10 Kymmen- eli desimaalijärjestelmä: kantaluku 10
perinteisesti käytetty ja tuttu
numerot 0, 1, 2, 3, 4, 5, 6, 7, 8 ja 9 2 Kaksi- eli binaarijärjestelmä: kantaluku 2
numerot 0 ja 1 luvut ovat pitkiä
numeroita nimitetään biteiksi (binary digit)
soveltuu hyvin digitaalilaitteisiin
asetetaan loogisen signaalin arvot 0 ja 1 vastaamaan bitin arvoja 0 ja 1 8 Kahdeksan- eli oktaalijärjestelmä: kantaluku 8
numerot 0, 1, 2, 3, 4, 5, 6 ja 7 16 Kuusitoista- eli heksadesimaalijärjestelmä: kantaluku 16
yleisessä käytössä digitaalisuunnittelussa ja ohjelmoinnissa
kaksijärjestelmää havainnollisempi, luvut ovat lyhyitä
numerot 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E ja F
Kantaluvun esittäminen ja lukutyypit
?
1 unsigned signed Lukutyypit:
etumerkittömät luvut (unsigned numbers)
kaikki luvut samanmerkkisiä (yleensä positiivisia)
etumerkkiä ei merkitä
etumerkillä varustetut luvut (signed numbers)
sekä positiivisia että negatiivisia lukuja
etumerkki merkittävä näkyviin Kantaluvun (base, radix) esittäminen:
alaindeksillä luvun perässä: esimerkiksi 101012, 1758, 9410, F5C16
kirjaimella luvun perässä: esimerkiksi 10101B, 175Q, 94D, F5CH
etuliitteellä: esimerkiksi C-kielessä 0175 = 1758, 94 = 9410, 0xF5C = F5C16
1 0 tavu = 8 bittiä Esim. 1001 = 910 Kaikki luvut esitetään numeroiden 0 ja 1 avulla
Binaariluvuille tämä on helppoa, tarvitaan vain 0 ja 1
Muiden järjestelmien luvuille käytetään koodausta
Luvut voivat olla
kokonaislukuja (integer)
kiinteän pilkun (fixed point) lukuja
liukuvan pilkun (floating point) lukuja (hyvin suuri lukualue)
Toisaalta ne voivat olla
etumerkittömiä
etumerkillä varustettuja
Lukujen arvoja pidetään rekistereissä
Luvun esittämiseen on käytettävissä tietty vakiomäärä tai sen monikerta bittejä, esim. 8, (12), 16, 32, 64 tai jopa 128
Em. bittimäärä = sananpituus (word length)
Tavu (byte, B) = 8 bittiä
1’s Yhden komplementtiesitys (1's complement)
harvinainen
suhteellisen yksinkertaiset yhteen- ja vähennyslaskualgoritmit
ei esitetä tässä opintojaksossa 2’s Kahden komplementtiesitys (2's complement)
yleisin esitystapa digitaalilaitteissa
erittäin yksinkertaiset yhteen- ja vähennyslaskualgoritmit ± | | Etumerkki-itseisarvoesitys (sign-and-magnitude)
tuttu 10-järjestelmästä
monimutkaiset yhteen- ja vähennyslaskualgoritmit
yksinkertainen kertolaskualgoritmi
Positiivisten ja negatiivisten binaarilukujen esitys
– Negatiivisten lukujen esitys
merkkibitti = 1
muutoin erilainen eri esitystavoissa
etumerkki-itseisarvoesityksessä suuruusosa on luvun itseisarvo
kahden komplementtiesityksessä suuruusosa on luvun itseisarvon kahden komplementti Positiivisten lukujen esitys
merkkibitti = 0
samanlainen etumerkki-itseisarvoesityksessä ja kahden komplementtiesityksessä
suuruusosa ilmaisee luvun arvon
esityksen tulkinta kuten edellä olleissa esimerkeissä +
Kahden komplementin muodostaminen
?
5 2’s Luku 0 1 1 0 1 0 0
2:n kompl. 1 0 0 1 1 0 0 Säilyvät Kääntyvät Esimerkki 1:
0110100 Luku 1 0 0 0 1 1 1
2:n kompl. 0 1 1 1 0 0 1 Säilyy Kääntyvät Esimerkki 2:
1000111 Aloitetaan vähiten merkitsevästä bitistä
Jos bitti on = 0, sitä ei muuteta, vaan siirrytään seuraavaan bittiin
Ensimmäinen 1-bitti säilytetään vielä ennallaan
Loput bitit käännetään eli invertoidaan
Kahden komplementin kahden komplementti
Komplementoimalla komplementti saadaan alkuperäinen luku uudelleen
Jos tiedetään luvun kahden komplementti, alkuperäinen luku saadaan komplementoimalla se
Muunnokset etumerkki-itseisarvoesityksen ja kahden komplementtiesityksen välillä
?
6 Etumerkki- Kahden itseisarvo komplementti
A = 01100011 01100011
B = 10110010 11001110 Positiivinen - säilyy ennallaan Negatiivinen -
suuruusosa
komplementoidaan Esimerkki: Muunna etumerkki-itseisarvomuotoiset binaariluvut A ja B kahden komplementtimuotoon ja kääntäen Positiiviset luvut samoja säilyy ennallaan
Negatiiviset luvut erilaisia
merkkibitti aina 1
suuruusosa muunnetaan muodostamalla sen kahden komplementti
muunnos on samanlainen kumpaankin suuntaan
16 32 Usein digitaalilaitteissa käytetään useaa eri sananpituutta lukujen esittämiseen, esimerkiksi
integer: 32-bittinen kahden komplementtimuotoinen kokonaisluku
short: 16-bittinen kahden komplementtimuotoinen kokonaisluku
long: 64-bittinen kahden komplementtimuotoinen kokonaisluku
Lukuja joudutaan muuttamaan sananpituudesta toiseen
Lyhennettäessä luvun pitää mahtua kokonaan lyhyempään sananpituuteen
Luvun arvo ei saa muuttua muunnoksessa
Luvun etumerkki ei saa muuttua muunnoksessa
Kahden komplementtimuotoisten positiivisten lukujen sananpituuden muunnos
+ 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 Merkkibitti Merkkibitti (+5810) (+5810) Suuruus Suuruus Lyhennys
poistetaan alusta nollia eli merkkibittejä
Pidennys
lisätään alkuun nollia eli merkkibittejä
Kahden komplementtimuotoisten negatiivisten lukujen sananpituuden muunnos
?
7 – 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 Merkkibitti Merkkibitti (-5810) (-5810) Suuruus Suuruus Lyhennys
poistetaan alusta ykkösiä eli merkkibittejä
Pidennys
lisätään alkuun ykkösiä eli merkkibittejä
Comments