1 / 14

LUKUJÄRJESTELMÄMUUNNOKSET

LUKUJÄRJESTELMÄMUUNNOKSET. k  10. 2  10. 2´s  10. 10  8 10  16. 10  2. 10  2´s. 2  8. 8  2. 2  16. 16  2. Johdanto. Tässä luvussa perustellaan, miksi on tarpeellista osata muuntaa lukuja lukujärjestelmästä toiseen

clay
Download Presentation

LUKUJÄRJESTELMÄMUUNNOKSET

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LUKUJÄRJESTELMÄMUUNNOKSET k10 210 2´s10 108 1016 102 102´s 28 82 216 162

  2. 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ä

  3. Lukujärjestelmämuunnokset • 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ä havainnollisuus, lyhyt esitys • 16-järjestelmä 2-järjestelmä bittitason signaalien tarkastelu • 2-järjestelmä 8-järjestelmä • 8-järjestelmä 2-järjestelmä 102 • merkkikoodien esitys, • muistipaikkojen numerot jne. • joissain järjestelmissä • käytetään oktaalilukuja

  4. Esimerkiksi muunnos kaksijärjestelmästä kymmenjärjestelmään: • Luku on Bn Bn-1 … B2B1B0 , B-1B-2B-3 … B-m • Käytetään summakaavaa: B = Bn·2n + Bn-1·2n-1 + … + B2·22 + B1·21 + B0·20 + B-1·2-1 + B-2 ·2-2 + B-3 ·2-3 +… +B-m·2-m 210 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 Esimerkki: 10101,012 = 1·24 + 0·23 + 1·22 + 0·21 + 1·20 + 0·2-1 + 1·2-2 = 21,2510

  5. Muunnetaan kokonaisosa Muunnetaan murto-osa Yhdistetään tulokset • 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 • jatketaan, kunnes murto-osa on nolla tai on saatu riittävä muunnostulos • muunnostulos saadaan kokonaisosista ·k Etumerkittömän luvun muunnos kymmenjärjestelmästä muuhun järjestelmään 10k

  6. Muunnos 10-järj:stä 2-järjestelmään, kokonaisosa • Esimerkki: muunna 999,57812510 kaksijärjestelmään. Esityspituus on 32 bittiä, josta 22 bittiä kokonaisosassa. • Muunnetaan kokonaisosa: Jakolaskut Tulokset Jakojäännökset 999/2 = 499 + 1/2  1 (lsb)499/2 = 249 + 1/2  1249/2 = 124 + 1/2  1124/2 = 62 + 0/2  062/2 = 31 + 0/2  031/2 = 15 + 1/2  115/2 = 7 + 1/2  17/2 = 3 + 1/2 13/2 = 1 + 1/2  11/2 = 0 + 1/2  1 (msb) • Saadaan 99910 = 11111001112 Pilkkua lähinnä oleva bitti saadaan ensin ? 1 102

  7. Muunnos 10-järj:stä 2-järjestelmään, desimaaliosa • Muunnettava luku on 999,57812510 • Muunnetaan desimaaliosa: Kertolaskut Tulokset Kokonaisosat 2 · 0,578125 = 1 + 0,15625  1 (msb)2 · 0,15625 = 0 + 0,3125  02 · 0,3125 = 0 + 0,625  02 · 0,625 = 1 + 0,25  12 · 0,25 = 0 + 0,5  02 · 0,5 = 1 + 0  1 (lsb) • Saadaan 0,57812510 = 0,1001012 • Yhdistetään muunnostulokset: 999,57812510 = 1111100111,1001012 • Lisätään nollat, alkuun 12 ja loppuun neljä: 1111100111,1001012 = 0000000000001111100111,10010100002 Pilkkua lähinnä oleva bitti saadaan ensin ? 2 102

  8. Muunnos 10-järj:stä 2-järj., päättymätön desimaaliosa • Desimaaliosan muunnos ei yleensä pääty • Pyöristetään niin, että saatu muunnostulos mahtuu käytettävissä olevaan bittimäärään • Esimerkki: Muunna 0,310 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  12 · 0,2 = 0 + 0,4  02 · 0,4 = 0 + 0,8  02 · 0,8 = 1 + 0,6  12 · 0,6 = 1 + 0,2  1… • Pyöristetään ja saadaan siis: 0,310 = 0,01012 = 0000,01012 ? 3 102 Esittele muunnos-laskin

  9. Muunnos kymmenjärjestelmän luvusta kahden komplementtimuotoiseksi luvuksi • Luvun suuruusosa muunnetaan binaariluvuksi • Täydennetään tarvittaessa käytettävään sananpituuteen • kokonaisosa: lisätään nollia alkuun • murto-osa: lisätään nollia loppuun • Jos luku on positiivinen • merkkibitiksi 0 • suuruusosa sellaisenaan merkkibitin perään • Jos luku on negatiivinen • merkkibitiksi 1 • suuruusosan kahden komplementti merkkibitin perään 102’s Muista järjestys:  täydennys,  yhdistäminen

  10. Muunnos kymmenjärjestelmän luvusta kahden komplementtimuotoiseksi luvuksi, esimerkki • Esimerkki: Muunna kymmenjärjestelmän luku -113,62510 kahden komplementtimuotoiseksi binaariluvuksi. Sananpituus on 16 bittiä, joista kokonaisosaan käytetään 10 bittiä. • Muunnetaan kokonaisosa 113 jatkuvan kahdella jakamisen algoritmilla binaariluvuksi. Saadaan 11310 = 11100012 • Muunnetaan murto-osa 0,625 jatkuvan kahdella kertomisen algoritmilla binaariluvuksi. Saadaan 0,62510 = 0,1012 • Yhdistetään tulokset suuruusosaksi: 113,62510 = 1110001,1012 • Täydennetään: kokonaisosa 10 bittiä, murto-osa 16 - 1 - 10 bittiä = 5 bittiä • 1110001,1012 = 0001110001,101002 • Luku on negatiivinen • merkkibitiksi 1 • suuruusosan kahden komplementti merkkibitin perään • -113,62510 = 11110001110,011002 (kahden komplementtimuoto) ? 4 102’s

  11. Muunnos kahden komplementtimuotoisesta luvusta kymmenjärjestelmän luvuksi • Muunnetaan etumerkki-itseisarvoesitykseen • Muunnetaan suuruusosa kymmenjärjestelmän luvuksi määritelmän mukaan summakaavalla B = Bn·2n + Bn-1·2n-1 + … + B2·22 + B1·21 + B0·20 + B-1·2-1 + B-2 ·2-2 + B-3 ·2-3 +… +B-m·2-m • Etumerkki määräytyy merkkibitin mukaan: 0  +, 1  - • Toinen tapa: • käytetään suoraan summakaavaa, mutta otetaan merkkibitti mukaan miinusmerkkisenä B = -Bn+1·2n+1 + Bn·2n + Bn-1·2n-1 + … + B2·22 + B1·21 + B0·20 + B-1·2-1 + B-2 ·2-2 + B-3 ·2-3 +… +B-m·2-m 210

  12. Muunnos kahden komplementtimuotoisesta luvusta kymmenjärjestelmän luvuksi, esimerkkejä Esimerkki: Muunna kahden komplementtimuotoiset binaariluvut A = 01100011 ja B = 10110100 kymmenjärjestelmään. A = 011000112(positiivinen, suora muunnos summakaavalla) = + (1 · 26 + 1 · 25 + 0 · 24 + 0 · 23 + 0 · 22 + 1 · 21 + 1 · 20 ) = + (64 + 32 + 2 + 1) = +9910 ? 5 B = 101101002(negatiivinen, kahden komplementtimuotoinen) = 110011002(negatiivinen, etumerkki-itseisarvomuotoinen) = - (1 · 26 + 0 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 ) = - (64 + 8 + 4) = -7610 B:n suora muunnos: B = 101101002(negatiivinen, kahden komplementtimuotoinen) = -1 · 27 + 0 · 26 + 1 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 0 · 20 = -128 + 32 + 16 + 4 = -7610

  13. Muunnokset 2-, 8- ja 16-järjestelmien välillä • Koska 8 = 23 ja 16 = 24, 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 • Oktaaliluvuksi: 0012201122100221002200122010 010000300004000040000100002 • 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 ? 6 28 Lisätään nollat 216

  14. Yhteenveto • Digitaalitekniikassa tarvitaan lukujärjestelmämuunnoksia, koska ihmiset ovat tottuneet kymmenjärjestelmään 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 kahdella kertomisen algoritmilla (murto-osa) • Murto-osan muunnos voi olla päättymätön jolloin lopputulos pyöristetään • Muunnos kymmenjärjestelmän luvusta kahden komplementtimuotoiseksi luvuksi on kolmivaiheinen • Muunnos kahden komplementtimuotoisesta luvusta kymmenjärjestelmän luvuksi voidaan tehdä joko kaksivaiheisena tai suorana muunnoksena • Muunnokset binaariluvuista oktaali- ja heksadesimaaliluvuiksi ja kääntäen tehdään bittejä ryhmittelemällä

More Related