1 / 25

LUKUJÄRJESTELMÄT JA LUKUJEN ESITTÄMINEN

LUKUJÄRJESTELMÄT JA LUKUJEN ESITTÄMINEN. 1997D. Binary. msb. 8AFFH. 2:n komplementti. lsb. Decimal. 0. 1. 0. 1. 1. 0. 0. 0. B =  B i · 2 i. Hex. 1100111001100101B. Octal. Johdanto. Tässä luvussa

obert
Download Presentation

LUKUJÄRJESTELMÄT JA LUKUJEN ESITTÄMINEN

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ÄT JA LUKUJEN ESITTÄMINEN 1997D Binary msb 8AFFH 2:n komplementti lsb Decimal 0 1 0 1 1 0 0 0 B =  Bi · 2i Hex 1100111001100101B Octal

  2. 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- sekä kiinteän ja liukuvan 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 Luvun tavoitteena on • oppia tuntemaan digitaalitekniikassa yleisesti käytettävät lukujärjestelmät ja lukujen esitystavat ja -muodot

  3. 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 1vastaamaan bitin arvoja 0 ja 1 2 8 • Kahdeksan- eli oktaalijärjestelmä: kantaluku 8 • numerot 0, 1, 2, 3, 4, 5, 6 ja 7 • 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 16 Lukujärjestelmät • Kymmen- eli desimaalijärjestelmä: kantaluku 10 • perinteisesti käytetty ja tuttu • numerot 0, 1, 2, 3, 4, 5, 6, 7, 8 ja 9 10

  4. 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 unsigned signed Kantaluvun esittäminen ja lukutyypit • 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

  5. Esitystapa: An An-1 … A2A1A0 , A-1A-2A-3 … A-m Numero Kokonais- ja murto-osan erotin (pilkku tai piste) An Kantaluku • Tulkinta: A = An·kn + An-1·kn-1 + … + A2·k2 + A1·k1 + A0·k0 +A-1·k-1 + A-2·k-2 + A-3 ·k-3 + … + A-m ·k-m An·kn Etumerkittömien lukujen esittäminen ja tulkinta ? 2 Esimerkkejä: 724,510 = 7·102 + 2·101 + 4·100 + 5·10-1 10101,01B = 1·24 + 0·23 + 1·22 + 0·21 + 1·20 + 0·2-1 + 1·2-2 = 21,2510 0724,5 = 7·82 + 2·81 + 4·80 + 5·8-1 = 468,62510 0xA50BF6 = A·165 + 5·164 + 0·163 + B·162 + F·161 + 6·160 = 1081650210

  6. Etumerkittömiä kokonaislukuja eri järjestelmissä Heksadesimaali Desimaali Oktaali Binaari 16 0 0 0 0 1 1 1 1 2 2 2 10 3 3 3 11 10 4 4 4 100 5 5 5 101 6 6 6 110 7 7 7 111 8 8 8 10 1000 9 9 11 1001 A 10 12 1010 2 B 11 13 1011 C 12 14 1100 D 13 15 1101 E 14 16 1110 F 15 17 1111

  7. Lukujen esitys digitaalilaitteissa • 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ä 0 1 tavu = 8 bittiä

  8. Esitystapa: Bn Bn-1Bn -2 … B2B1B0 Esimerkki: Kahdeksanbittinen etumerkitön kokonaisluku msb lsb 0 0 0 0 1 1 0 1 Etumerkittömät binaarikokonaisluvut Eniten merkitsevä bitti (most significant bit) msb Vähiten merkitsevä bitti (least significant bit) lsb 2 • Tulkinta: B = Bn·2n + Bn-1·2n-1 + Bn-2·2n-2 + … + B2·22 + B1·21 + B0·20 Esimerkkejä: Sananpituus on 8 bittiä. Esitä etumerkittömät kokonaisluvut 0, 1, 100,101010, 1111111 ja 11110000 0  00000000, 1  00000001, 100  00000100, 101010  00101010, 1111111  01111111, 11110000 11110000 (ei muutu) ? 3

  9. Merkkibitti (sign bit) ilmoittaa luvun etumerkin, yleensä 0 = + ja 1 = - Kahdeksanbittinen positiivinen kokonaisluku Suuruus msb lsb Suuruus Luku = +10110002= 8810 0 1 0 1 1 0 0 0 Merkkibitti msb lsb Merkkibitti Luvun arvo riippuu esitysmuodosta 1 0 0 1 0 1 1 1 0 0 1 0 0 1 0 0 Etumerkillä varustetut binaarikokonaisluvut • 16-bittinen negatiivinen kokonaisluku

  10. Esitystapa: Bn Bn-1 … B2B1B0 , B-1B-2B-3 … B-m Eniten merkitsevä bitti (msb) Vähiten merkitsevä bitti (lsb) Binaaripilkku 2 Etumerkittömät kiinteän pilkun binaariluvut • Tulkinta: 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 Esimerkkejä: Sananpituus on 16 bittiä ja kokonaisosan pituus 10 bittiä. Esitä etumerkittömät kiinteän pilkun luvut 0,1, 100,10101 ja 11110000,111 0,1  0000000000,100000, 100,10101  0000000100,101010 11110000,111 0011110000,111000 ? 4

  11. Kokonaisosa • Etumerkitön kiinteän pilkun luku: Murto-osa Binaaripilkun paikka, sama kaikilla luvuilla msb lsb Kokonaisosa • Etumerkillä varustettu kiinteän pilkun luku: Murto-osa Binaaripilkun paikka, sama kaikilla luvuilla msb lsb Merkkibitti 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 Kiinteän pilkun binaarilukujen esitys digitaalilaitteissa • Binaaripilkun paikka valitaan tarpeen mukaan etukäteen pysyvästi • valinta tehdään tarvittavan lukualueen perusteella • binaaripilkun paikkaa ei merkitä mitenkään

  12. 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 Etumerkillä varustettujen binaarilukujen esitysmuodot ± | | • Etumerkki-itseisarvoesitys (sign-and-magnitude) • tuttu 10-järjestelmästä • monimutkaiset yhteen- ja vähennyslaskualgoritmit • yksinkertainen kertolaskualgoritmi

  13. Positiivisten lukujen esitys • merkkibitti = 0 • samanlainen etumerkki-itseisarvoesityksessä ja kahden komplementtiesityksessä • suuruusosa ilmaisee luvun arvon • esityksen tulkinta kuten edellä olleissa esimerkeissä + • Negatiivisten lukujen esitys • merkkibitti = 1 • muutoin erilainen eri esitystavoissa • etumerkki-itseisarvoesityksessä suuruusosa on luvun itseisarvo • kahden komplementtiesityksessä suuruusosa on luvun itseisarvon kahden komplementti – Positiivisten ja negatiivisten binaarilukujen esitys

  14. Esimerkki 1: 0110100 Esimerkki 2: 1000111 Luku 0 1 1 0 1 0 0 2:n kompl. 1 0 0 1 1 0 0 Luku 1 0 0 0 1 1 1 2:n kompl. 0 1 1 1 0 0 1 Säilyvät Säilyy Kääntyvät Kääntyvät Kahden komplementin muodostaminen • 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 2’s ? 5

  15. Kahden komplementin kahden komplementti • Komplementoimalla komplementti saadaan alkuperäinen luku uudelleen • Jos tiedetään luvun kahden komplementti, alkuperäinen luku saadaan komplementoimalla se

  16. Esimerkki: Muunna etumerkki-itseisarvomuotoiset binaariluvut A ja Bkahden komplementtimuotoon ja kääntäen Etumerkki- Kahden itseisarvo komplementti A = 01100011 01100011 B = 10110010 11001110 Positiivinen - säilyy ennallaan Negatiivinen - suuruusosa komplementoidaan Muunnokset etumerkki-itseisarvoesityksen ja kahden komplementtiesityksen välillä • Positiiviset luvut samoja säilyy ennallaan • Negatiiviset luvut erilaisia • merkkibitti aina 1 • suuruusosa muunnetaan muodostamalla sen kahden komplementti • muunnos on samanlainen kumpaankin suuntaan ? 6

  17. Binaarilukujen esitys eri esitystavoissa Desimaali- Etumerkki- Kahden luku itseisarvo komplementti +7 0111 0111 +6 0110 0110 +5 0101 0101 +4 0100 0100 +3 0011 0011 +2 0010 0010 +1 0001 0001 +0 0000 0000 - 0 1000 - - 1 1001 1111 - 2 1010 1110 - 3 1011 1101 - 4 1100 1100 - 5 1101 1011 - 6 1110 1010 - 7 1111 1001 - 8 - 1000 ± | | 2’s

  18. Binaarilukujen sananpituuden muuttaminen • 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 1632

  19. 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 Kahden komplementtimuotoisten positiivisten lukujen sananpituuden muunnos • Lyhennys • poistetaan alusta nollia eli merkkibittejä • Pidennys • lisätään alkuun nollia eli merkkibittejä + Suuruusosa Suuruusosa Merkkibitti (+5810) (+5810) Merkkibitti

  20. 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 Kahden komplementtimuotoisten negatiivisten lukujen sananpituuden muunnos • Lyhennys • poistetaan alusta ykkösiä eli merkkibittejä • Pidennys • lisätään alkuun ykkösiä eli merkkibittejä – Suuruus Suuruus Merkkibitti (-5810) (-5810) Merkkibitti

  21. Liukuvan pilkun luvut , • Kiinteän pilkun esityksillä on heikkouksia • suppea lukualue kohtuullisilla esityspituuksilla • esityspituuden lisääminen yhdellä bitillä vain kaksinkertaistaa lukualueen • esityspituuden kasvattaminen kasvattaa myös esitystarkkuutta, mikä usein on tarpeetonta • Liukuvan pilkun esityksellä poistetaan nämä heikkoudet • käytännössä yleensä riittävän laaja lukualue 32:lla bitillä • esityspituuden lisääminen yhdellä bitillä kasvattaa lukualueen toiseen potenssiin • Vastaa tekniikassa yleistä tapaa esittää luvut kymmenen potenssien avulla • esimerkkejä: 0,54871 · 1026, -7,24685 · 10-18, -0,10025 · 1036 • Liukuvan pilkun luvuilla laskemiseen prosessoreissa on erityinen laskentayksikkö (floating point unit, FPU)

  22. s e f Liukuvan pilkun lukujen esitystapa , 23 bittiä • Käytettävissä oleva bittimäärä jaetaan kolmeen osaan • merkkibitti s (sign bit) • eksponentti e (exponent, characteristic) • mantissa f (fraction, mantissa, argument) • Luvun arvov saadaan kaavasta v = (-1)s · 2e-b · 0,f tai v = (-1)s · 2e-b · 1,f • 32-bittisen liukuluvun esitys: Mantissa 8 bittiä Eksponentti Merkkibitti

  23. Eksponentti ja mantissa • Eksponentti e esitetään siirretyssä esitysmuodossa (biased) • e:stä vähennetään ennen potenssiin korottamista siirre (bias) b • b on likimain e:n suurin mahdollinen arvo jaettuna kahdella • lukualue saadaan ulottumaan myös itseisarvoltaan ykköstä pienempiin lukuihin • Esimerkki: • e:lle on varattu 8 bittiä • tällöin emax = 255 b = 127 • 0 e 255  -126 e - b 127 • Mantissa esitetään itseisarvomuodossa eikä käytetä kahden komplementtiesitystä ,

  24. Esimerkki liukuvan pilkun luvuista: ANSI/IEEE:n standardi • ANSI/IEEE:n standardi 754-1985 • Laaja ja yksityiskohtainen • Määrittelee esitystavat ja laskutoimitukset • Laadittu lähinnä mikrotietokoneita varten • Kaksi perusesitystapaa • yksinkertainen esitystarkkuus: 32 bittiä: s + 8 e + 23 f • kaksinkertainen esitystarkkuus: 64 bittiä: s + 11 e + 52 f ANSI/IEEE Std 754-1985 , Yksinkertainen Kaksinkertainen esitystarkkuus esitystarkkuus Suurin luku  2128  3,4 · 1038 21024  1,8 · 10308 Itseisarvoltaan pienin tarkka luku ( 0) 2-126  1,2 · 10-382-1022  2,2 · 10-308 Esitystarkkuus 24 bittiä eli  7 10-j. num. 53 bittiä eli  16 10-j. num.

  25. Yhteenveto • Digitaalitekniikassa käytetään lukujärjestelmiä, joiden kantaluvut ovat 10, 2, 8 ja 16 • Kantaluku voidaan esittää joko alaindeksillä, kirjaimella luvun perässä tai etuliitteellä • Binaariluvut esitetään digitaalilaitteissa määrämittaisissa rekistereissä • kokonais-, kiinteän pilkuntai liukuvan pilkun lukuina • etumerkittöminä tai etumerkillä varustettuina lukuina • etumerkki-itseisarvo- tai komplementtiesitystä käyttäen • Yleisin binaarilukujen esitysmuoto on kahden komplementtiesitys • Siinä lukujen yhteen- ja vähennyslasku on erittäin yksinkertainen • Muunnos etumerkki-itseisarvoesityksen ja kahden komplementtiesityksen välillä on yksinkertainen • Kahden komplementtimuotoisen luvun sananpituutta voidaan muuttaa • Liukuvan pilkun esityksellä voidaan esittää hyvin laaja lukualue kohtullisella bittimäärällä, esimerkki tästä on ANSI/IEEE-standardiesitys

More Related