1 / 20

Lukujärjestelmät

Lukujärjestelmät. Lukujärjestelmät. Ihmiset käyttävät kantalukuna 10 Tietokoneet käyttävät kantalukuna 2 (binaariluvut) Välimuotona 16 (heksadesimaaliluvut). Binaariluvut. Binaariluvun numero on bitti (BInary digiT) Bitin arvo voi olla 0 tai 1

leroy
Download Presentation

Lukujärjestelmät

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

  2. Lukujärjestelmät • Ihmiset käyttävät kantalukuna 10 • Tietokoneet käyttävät kantalukuna 2 (binaariluvut) • Välimuotona 16 (heksadesimaaliluvut)

  3. Binaariluvut • Binaariluvun numero on bitti (BInary digiT) • Bitin arvo voi olla 0 tai 1 • Luvun suurin arvo = 2n-1 (esim. 8 bittinen luku: 28-1=255) • (Koska ensimmäinen arvo on 0, mahdollisia arvoja on 2n) • Käytetään, koska laitetasolla on vain kaksi vaihtoehtoa: virta kulkee/ei kulje • Miksi ei käytetä kymmentä bittiä kuvaamaan yhtä desimaalinumeroa??

  4. 0 = 0 • 1 = 1 • 2 = 10 • 3 = 11 • 4 = 100 • 5 = 101 • 6 = 110 • 7 = 111 • 8 = 1000 • 9 = 1001 • 10 = 1010 • 11 = 1011 • 12 = 1100 • 13 = 1101 • 14 = 1110 • 15 = 1111

  5. Binaarien yhteenlasku • Muista 1+1 = 10 eli nolla ja muistinumerona 1 • 1 1 1 1 • 110010110 • 110011 • 111001001

  6. Heksadesimaaliluvut • Kantaluku on 16 • Numerot 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F • Käytetään, koska muunnos binaariluvusta hyvin helppo • Muistiosoitteet kerrotaan yleensä heksadesimaalilukuina • Merkintätapoja: • 24AC216 • 24AC2H tai 24AC2h • 0x24AC2

  7. Muunnokset • Desimaali – binaari • Jaetaan luku kahdella. Jakojäännös on bitin arvo • Ensimmäinen jako antaa alimman bitin • Esim. 157 binaariksi • 157 / 2 = 78 jakojäännös 1 • 78 / 2 = 39 jakojäännös 0 • 39 / 2 = 19 jakojäännös 1 • 19 / 2 = 9 jakojäännös 1 • 9 / 2 = 4 jakojäännös 1 • 4 / 2 = 2 jakojäännös 0 • 2 / 2 = 1 jakojäännös 0 • 1 / 2 = 0 jakojäännös 1 • Tulos = 10011101

  8. Muunnokset • Binaari – heksadesimaali • Jaetaan binaariluku neljän bitin palasiin ja muutetaan jokainen palanen erikseen • Esim: 101 0011 0110 1010 1101 • 1101 = D • 1010 = A • 0110 = 6 • 0011 = 3 • 101 = 5 • Tulos = 536AD

  9. Muunnokset • Desimaali – heksadesimaali • Jaetaan lukua 16:lla • Jakojäännös on numeron arvo • Ensimmäinen jako antaa alimman numeron arvon

  10. Muunnokset • Binaari – desimaali • Periaatteessa voitaisiin jakaa binaarilukua kymmenellä, mutta se olisi hankalaa • Kerrotaan jokainen bitti vastaavalla kertoimella: • Alin kerrotaan 1:llä (20) • Seuraava 2:lla (21) • Seuraava 4:llä (22) • jne. *256 (=28) *128 (=27) *32 (=25) *16 (=24) *64 (=26) *1 (=20) *2 (=21) *4 (=22) *8 (=23) 1 0 1 1 0 1 0 1 0 = 256 + 64 + 32 + 8 + 2 = 263

  11. Kiinteän kokoiset binaariluvut • Tietokoneissa käytettävät binaariluvut ovat lähes aina kiinteän mittaisia: 8, 16, 32, 64 bittisiä • Luvulla on aina ylä- ja alaraja, joita ei voi ylittää • Yritys ylittää aiheuttaa virheellisen arvon tai virheilmoituksen • Jokaisella bitillä on aina arvo. Luku nolla tarkoittaa, että jokainen bitti on nolla • Luvun suurin arvo = 2n-1 (esim. 8 bittinen luku: 28-1=255) • Koska ensimmäinen arvo on 0, mahdollisia arvoja on 2n

  12. Etumerkilliset binaariluvut • Binaariluvut alun perin etumerkittömiä eli arvot alkavat nollasta, (koska vain arvot 0 tai 1 mahdollisia bitille eli ei etumerkkiä.) • Etumerkilliset luvut esitetään yleensä ns. kahden komplementtilukuina. • Kahdenkomplementtia voidaan käyttää vain määrämittaisilla binaariluvuilla!!! • Kahden komplementti luvussa käytännössä ensimmäinen (yli) bitti kertoo, onko luku positiivinen vai negatiivinen (1 tarkoittaa negatiivista)

  13. Kahdenkomplementti • Muunnos: • (Muutetaan luku normaalisti binaariseksi esim. Jakamalla kahdella) • Jos luku on negatiivinen: • Käännetään kaikki bitit (0 -> 1, 1 -> 0) • Lisätään lukuun 1 • -157 16-bittisenä lukuna: • 157 = 0000 0000 1001 1101 • Käännetään bitit: 1111 1111 0110 0010 • Lisätään yksi: 1111 1111 0110 0011

  14. Kahdenkomplementti • Luvun minimi arvo on -2n-1 • Maksimiarvo on 2n-1-1 • 8 bittinen: -128 ... 127 • 16 bittinen: -32768 ... 32767

  15. Liukuluvut • Liukulukuja käytetään, kun tarvitaan suurta lukualuetta ja lukuja, joissa on murto-osa • Lähes aina käytetään IEEE:n määrittelemiä lukutyyppejä. • Periaate: • Mikä tahansa luku voidaan esittää muodossa m * 10e • Tai tietokoneessa mieluummin m * 2e • Nimityksiä: • M on mantissa • E on exponentti

  16. IEEE liukuluvut • Esimerkiksi 4 tavuinen liukuluku (float javassa ja C:ssä) • 1 bitti on etumerkki • Seuraavat 8 exponentti • Loput (23 bittiä mantissa) • 0|1111 1111|000 0000 0000 0000 • Exponentilla ei ole etumerkkiä! • Exponentti on biasoitu: Arvoon lisätään 127. • Mantissassa ensimmäinen bitti on aina 1. Siksi sitä ei turhaan talleteta. Käytännössä siis mantissa on 24 bittinen

  17. IEEE liukuluvut • Muutetaan 2005 liukuluvuksi • 2005 on binaarisena 111 1101 0101. • Ensimmäisen bitin jälkeen on 10 bittiä, joten exponentti on 10 eli 1010 binaarisena. • Mantissa = (1)1111010101 , ensimmäinen bitti jätetään pois • Exponentti = 10 + 127 = 1010 + 111 1111 =10000101 • 0|10000101|11110101010000000000000 • Loppu täytetään nollilla

  18. IEEE liukuluvut • Mantissan ensimmäinen bitti on aina 1 • Ensimmäistä bittiä ei talleteta, joten mantissan tarkkuus on todellisuudessa 24 bittiä • Poikkeuksena luku nolla, jossa kaikki liukuluvun bitit ovat nollia (etumerkki, exponentti ja mantissa) • Exponentin arvo 0-255 biasoituna eli -127...128 • Suurin arvo on 2128 eli noin 1038 • Mantissan suurin arvo on 1,111 1111 1111 1111 1111 1111 = 16777215 / 210 • Mantissa on siis tarkkuudeltaan 7 numeroa!

  19. IEEE liukuluvut • 64 bittinen liukuluku • Double javassa ja C:ssä • 1. bitti etumerkki • 11 bittiä exponentti • 52 bittiä mantissa. Koska ensimmäistä bittiä ei talleteta, bittejä on käytännössä 53 • Bias 1023 • 0|11111111111|0000000000000000000000000000000000000000000000000000 • Exponentti välillä -1023 ... 1024. Kymmenjärjestelmässä noin -308 ... +308

  20. IEEE liukuluvut • Single • ±1.2 *10-38 • ±3.4 *1038 • Tarkkuus 6-9 numeroa • Double • ±2.2 *10-308 • ±1.2 *10308 • Tarkkuus 14-17 numeroa • Extended • ±3.4 *10-4932 • ±1.2 *104932 • Tarkkuus 18-21 numeroa

More Related