Digitaalitekniikan matematiikka Luku 10 Sivu 1 (14) k 10 2 10 2 s 10 10 8 10 16 10 2 10 2 s 2 8 8 2 2 16 16 2
Digitaalitekniikan matematiikka Luku 10 Sivu 2 (14) Johdanto Tässä luvussa perustellaan, miksi on tarpeellista osata muuntaa lukuja lukujärjestelmästä toiseen esitetään lukujen muuntaminen lukujärjestelmästä toiseen keskitytään erityisesti muunnoksiin kymmenjärjestelmän ja kaksijärjestelmän lukujen välillä käsitellään lyhyesti myös muita digitaalilaitteiden yhteydessä tarpeellisia muunnoksia Luvun tavoitteena on opettaa ymmärtämään lukujärjestelmämuunnosten tarpeellisuus opettaa muuntamaan lukuja lukujärjestelmästä toiseen, erityisesti tekemään muunnoksia kymmenjärjestelmän ja kaksijärjestelmän lukujen välillä
Digitaalitekniikan matematiikka Luku 10 Sivu 3 (14) Ihminen haluaa antaa syöttötiedot kymmenjärjestelmässä Tietokone käsittelee parhaiten binaarilukuja tarvitaan muunnos 10-järjestelmästä 2-järjestelmään Tietokone laskee tulokset binaarilukuina Ihminen haluaa tulostiedot kymmenjärjestelmän lukuina tarvitaan muunnos 2-järjestelmästä 10-järjestelmään Suunnittelija ja ohjelmoija tarvitsevat muitakin muunnoksia 10-järjestelmä 16-järjestelmä 16-järjestelmä 10-järjestelmä 2-järjestelmä 16-järjestelmä 16-järjestelmä 2-järjestelmä 2-järjestelmä 8-järjestelmä 8-järjestelmä 2-järjestelmä merkkikoodien esitys, muistipaikkojen numerot jne. havainnollisuus, lyhyt esitys bittitason signaalien tarkastelu joissain järjestelmissä käytetään oktaalilukuja 10 2
Digitaalitekniikan matematiikka Luku 10 Sivu 4 (14) Etumerkittömän luvun muunnos muusta järjestelmästä kymmenjärjestelmään Käytetään esityksen määrittelyn summakaavaa Tehdään laskutoimitus kymmenjärjestelmässä Kätevä tehdä esimerkiksi laskimella k 10 Esimerkiksi muunnos kaksijärjestelmästä kymmenjärjestelmään: Luku on B n B n-1 B 2 B 1 B 0, B -1 B -2 B -3 B -m Käytetään summakaavaa: 2 10 B = B n 2 n + B n -1 2 n -1 + + B 2 2 2 + B 1 2 1 + B 0 2 0 + B -1 2-1 + B -2 2-2 + B -3 2-3 + + B -m 2-m Esimerkki: 10101,01 2 = 1 2 1 2 4 + 0 2 0 2 3 + 1 2 1 2 2 + 0 2 0 2 1 + 1 2 1 2 0 + 0 2 0 2-1 -1 + 1 2 1 2-2 -2 = 21,25 21,25 10 10
Digitaalitekniikan matematiikka Luku 10 Sivu 5 (14) Etumerkittömän luvun muunnos kymmenjärjestelmästä muuhun järjestelmään Muunnetaan kokonaisosa Muunnetaan murto-osa Yhdistetään tulokset 10 k Kokonaisosan muunnosalgoritmi jaetaan muunnettavaa lukua jatkuvasti muun järjestelmän kantaluvulla erotetaan jakojäännökset jatketaan, kunnes osamäärä on nolla muunnostulos saadaan jakojäännöksistä :k Murto-osan muunnosalgoritmi kerrotaan muunnettavaa lukua jatkuvasti muun järjestelmän kantaluvulla erotetaan kokonaisosat k jatketaan, kunnes murto-osa on nolla tai on saatu riittävä muunnostulos muunnostulos saadaan kokonaisosista
Digitaalitekniikan matematiikka Luku 10 Sivu 6 (14) Muunnos 10-järj:stä 2-järjestelmään, kokonaisosa Esimerkki: muunna 207,15625 10 kaksijärjestelmään. Esityspituus on 16 bittiä, josta 10 bittiä kokonaisosassa.? 1 Muunnetaan kokonaisosa: Jakolaskut Tulokset Jakojäännökset Pilkkua lähinnä oleva bitti saadaan ensin 10 2 207/2 = 103 + 1/2 1 (lsb) 103/2 = 51 + 1/2 1 51/2 = 25 + 1/2 1 25/2 = 12 + 1/2 1 12/2 = 6 + 0/2 0 6/2 = 3 + 0/2 0 3/2 = 1 + 1/2 1 1/2 = 0 + 1/2 1 (msb) Saadaan 207 10 = 11001111 2
Digitaalitekniikan matematiikka Luku 10 Sivu 7 (14) Muunnos 10-järj:stä 2-järjestelmään, desimaaliosa Muunnettava luku on 207,15625 10? 2 Muunnetaan desimaaliosa: Kertolaskut Tulokset Kokonaisosat 2 0,15625 = 0 + 0,3125 0 (msb) 2 0,3125 = 0 + 0,625 0 2 0,625 = 1 + 0,25 1 2 0,25 = 0 + 0,5 0 2 0,5 = 1 + 0 1 (lsb) Saadaan 0,15625 10 = 0,00101 2 Pilkkua lähinnä oleva bitti saadaan ensin 10 2 Yhdistetään muunnostulokset: 207,15625 10 = 11001111,00101 2 Kokonaisosa on 10 bittiä ja murto-osa 6 bittiä lisätään nollat, alkuun kaksi ja loppuun yksi: 11001111,00101 2 = 0011001111,001010 2
Digitaalitekniikan matematiikka Luku 10 Sivu 8 (14) Muunnos 10-järj:stä 2-järj., päättymätön desimaaliosa? 3 Desimaaliosan muunnos ei yleensä pääty Pyöristetään niin, että saatu muunnostulos mahtuu käytettävissä olevaan bittimäärään Esimerkki: Muunna 0,3 10 kaksijärjestelmään. Luvussa on 4 + 4 bittiä. Kertolaskut Tulokset Kokonaisosat 2 0,3 = 0 + 0,6 0 (msb) 2 0,6 = 1 + 0,2 1 2 0,2 = 0 + 0,4 0 2 0,4 = 0 + 0,8 0 2 0,8 = 1 + 0,6 1 2 0,6 = 1 + 0,2 1 Pyöristetään ja saadaan siis: 0,3 10 = 0,0101 2 = 0000,0101 2 10 2 Jos pyöristyvä bitti on 1, se muuttuu nollaksi ja pyöristys etenee edeltävään bittiin Esimerkki: Luku 0,00111 2 on pyöristettävä murto-osaltaan nelibittiseksi. Pyöristys etenee kaksi kertaa, ja saadaan 0,0100 2 Esittele muunnoslaskin
Digitaalitekniikan matematiikka Luku 10 Sivu 9 (14) Muunnos kymmenjärjestelmän luvusta kahden komplementtimuotoiseksi luvuksi Luvun suuruusosa muunnetaan binaariluvuksi kuten edellä Täydennetään tarvittaessa käytettävään sananpituuteen kokonaisosa: lisätään nollia alkuun murto-osa: lisätään nollia loppuun 10 2 s Jos luku on positiivinen merkkibitiksi 0 suuruusosa sellaisenaan merkkibitin perään Jos luku on negatiivinen ensin muunnetaan vastaava positiivinen luku muodostetaan saadun binaariluvun vastaluku eli kahden komplementti Muista Muista järjestys: 1 täydennys, 2 yhdistäminen
Digitaalitekniikan matematiikka Luku 10 Sivu 10 (14) Muunnos kymmenjärjestelmän luvusta kahden komplementtimuotoiseksi luvuksi, esimerkki? 4 Muunna kymmenjärjestelmän luku -113,625 10 kahden komplementtimuotoiseksi binaariluvuksi. Sananpituus on 16 bittiä, joista kokonaisosaan käytetään 10 bittiä. Muunnetaan kokonaisosa 113 jatkuvan kahdella jakamisen algoritmilla binaariluvuksi. Saadaan 113 10 = 1110001 2 Muunnetaan murto-osa 0,625 jatkuvan kahdella kertomisen algoritmilla binaariluvuksi. Saadaan 0,625 10 = 0,101 2 Yhdistetään tulokset suuruusosaksi: 113,625 10 = 1110001,101 2 Täydennetään: merkkibitti, kokonaisosa 10 bittiä, murto-osa 5 bittiä 1110001,101 2 = 00001110001,10100 2 Luku on negatiivinen positiivisen binaariluvun vastaluku eli kahden komplementti -113,625 10 = 11110001110,01100 2 (kahden komplementtimuoto)
Digitaalitekniikan matematiikka Luku 10 Sivu 11 (14) Muunnos kahden komplementtimuotoisesta luvusta kymmenjärjestelmän luvuksi Jos luku on negatiivinen (merkkibitti = 1), muodostetaan vastaava positiivinen luku eli kahden komplementti Muunnetaan kymmenjärjestelmän luvuksi määritelmän mukaan summakaavalla B = B n 2 n + B n -1 2 n -1 + + B 2 2 2 + B 1 2 1 + B 0 2 0 + B -1 2-1 + B -2 2-2 + B -3 2-3 + + B -m 2-m Jos alkuperäinen binaariluku oli negatiivinen, laitetaan saadun luvun eteen -. Toinen tapa: käytetään suoraan summakaavaa, mutta otetaan merkkibitti mukaan miinusmerkkisenä B = -B n +1 2n+1 + B n 2 n + B n -1 2 n -1 + + B 2 2 2 + B 1 2 1 + B 0 2 0 + B -1 2-1 + B -2 2-2 + B -3 2-3 + + B -m 2-m
Digitaalitekniikan matematiikka Luku 10 Sivu 12 (14) Muunnos kahden komplementtimuotoisesta luvusta kymmenjärjestelmän luvuksi, esimerkkejä Muunna kahden komplementtimuotoiset binaariluvut A = 01100011 ja B = 10110100 kymmenjärjestelmään.? 5 A = 01100011 2 (positiivinen, suora suora muunnos summakaavalla) = + (1 (1 2 6 + 1 2 5 + 0 2 4 + 0 2 3 + 0 2 2 + 1 2 1 + 1 2 0 )) = + (64 (64 + 32 32 + 2 + 1) 1) = +99 +99 10 10 B = 10110100 2 (negatiivinen, kahden kahden komplementtimuotoinen) -B -B = 01001100 2 (kahden komplementti = vastaava positiivinen binaariluku) = (1 (1 2 6 + 0 2 5 + 0 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 0 2 0 = 64 64 + 8 + 4 = 76 76 10 Joten 10 Joten B = -76-76 10 10 B:n B:n suora suora muunnos: B = 10110100 2 (negatiivinen, kahden kahden komplementtimuotoinen) = -1-1 2 7 + 0 2 6 + 1 2 5 + 1 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 0 2 0 = -128-128 + 32 32 + 16 16 + 4 = -76-76 10 10
Digitaalitekniikan matematiikka Luku 10 Sivu 13 (14) Muunnokset 2-, 8- ja 16-järjestelmien välillä? 6 Koska 8 = 2 3 ja 16 = 2 4, muunnokset ovat helppoja ja tehdään bittejä ryhmittelemällä ja muuntamalla kukin ryhmä erikseen Tarvittaessa etumerkittömän binaariluvun alkuun lisätään nollia ja kahden komplementtimuotoisen luvun alkuun merkkibittejä Esimerkki: Muunna 16-bittinen etumerkitön binaariluku 1011100100001010 oktaaliluvuksi ja heksadesimaaliluvuksi Lisätään nollat Oktaaliluvuksi: 0012201122100221002200122010 010000300004000040000100002 2 8 Heksaluvuksi: 1011221001220000221010 0 B0000-900 00 00000 A Muunnokset oktaali- ja heksadesimaalilukujen välillä tehdään binaarilukujen kautta 8 2 16 ja 16 2 8 2 16
Digitaalitekniikan matematiikka Luku 10 Sivu 14 (14) Yhteenveto Digitaalitekniikassa tarvitaan lukujärjestelmämuunnoksia, koska koska ihmiset ihmiset ovat ovat tottuneet kymmenjärjestelmään ja ja tietokoneet laskevat parhaiten binaariluvuilla Muunnos muusta järjestelmästä kymmenjärjestelmään tehdään käyttämällä summakaavaa Muunnos kymmenjärjestelmästä muuhun järjestelmään tehdään kahdella jakamisen algoritmilla (kokonaisosa) ja ja kahdella kertomisen algoritmilla (murto-osa) Murto-osan muunnos voi voi olla olla päättymätön jolloin jolloin lopputulos pyöristetään Muunnos kymmenjärjestelmän luvusta kahden komplementtimuotoiseksi luvuksi on on kolmivaiheinen Muunnos kahden komplementtimuotoisesta luvusta kymmenjärjestelmän luvuksi voidaan tehdä tehdä joko joko kaksivaiheisena tai tai suorana muunnoksena Muunnokset binaariluvuista oktaali- ja ja heksadesimaaliluvuiksi ja ja kääntäen tehdään bittejä bittejä ryhmittelemällä