1 / 51

2. Tiedon esittäminen

2. Tiedon esittäminen. 2.1. Bittiesitys 2.2. Binääriluvut 2.3. Tietotyyppien esitys 2.4. Käskyjen esitys 2.5. Tiedon oikeellisuuden tarkistus. 2.1 Bittiesitys. Kaikki tietokoneessa esitettävä tieto on binäärimuodossa sekä käskyt että käsiteltävä data

thuy
Download Presentation

2. Tiedon 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. 2. Tiedon esittäminen • 2.1. Bittiesitys • 2.2. Binääriluvut • 2.3. Tietotyyppien esitys • 2.4. Käskyjen esitys • 2.5. Tiedon oikeellisuuden tarkistus

  2. 2.1 Bittiesitys • Kaikki tietokoneessa esitettävä tieto on binäärimuodossa • sekä käskyt • että käsiteltävä data • On luotava säännöt tiedon koodaamiselle biteiksi • numerot • teksti • kuvat ja piirrokset • ääni, liikkuva kuva

  3. Bittiesitys 2 • bitti: 0 tai 1 • tavu: 8 bittiä • pienin kerrallaan osoitettava tietomäärä • tietokonesana: 2, 4 tai 8 tavua • kaksoissana • bittien numerointi • vähiten merkitsevä eli oikeanpuolinen bitti on 0. bitti vähiten merkitsevä 10110001000111 eniten merkitsevä bitti bitti

  4. 1 2 3 4 4 3 2 1 Tavujen järjestys sanassa • tätä ei ole standardoitu! • ‘big endian’ • alkaa vasemmalta • ‘little endian’ • alkaa oikealta • aiheuttaa ongelmia tiedon siirrossa big endian little endian

  5. 2.2 Binääriluvut • Lukujärjestelmissä • kantaluku => numeromerkkien määrä • 10-järjestelmä Eurooppaan keskiajan lopulla • Babylonialaisilla 60-järjestelmä • Mayoilla kantaluku 360 • numeron paikka määrää numeron arvon • 12345 => ykkösiä 5, kymmeniä 4, satoja 3, jne • vrt. roomalaiset numerot • bittiesityksen matemaattinen pohja binäärijärjestelmässä

  6. Binääriluvut • numeerisen tiedon esitysmuoto • kantaluku on 2 • käytössä vain kaksi numeroa 0 ja 1 eli bitit 0 ja 1 • helppo toteuttaa • helppo erottaa toisistaan • esim. 1101000.112 = 1*26+ 1*25 + 1*23 +1*2-1 + 1*2-2 = 64 + 32 + 8 + 1/2 + 1/4 = 104.7510

  7. Kymmenjärjestelmä => binäärijärjestelmä • kokonaisosa jaetaantoistuvasti luvulla 2, kunnes osamäärä on 0 • tulos saadaan poimimalla jakojäännökset käännetyssä järjestyksessä • esim. 5910 = 1110112 59:2 = 29 jakoj. = 1 29:2 = 14 1 14:2 = 7 0 111011 7:2 = 3 1 3:2 = 1 1 1:2 = 0 1

  8. Desimaaliosa kerrotaan toistuvasti luvulla 2. • Tulos saadaan merkitsemällä ylös kokonaisosat saadussa järjestyksessä • esim. 0.7310 ~ 0.10111012 0.73 * 2 = 1.46 0.46 * 2 = 0.92 1011101 0.92 * 2 = 1.84 0.84 * 2 = 1.68 0.68 * 2 = 1.36 0.36 * 2 = 0.72 0.72 * 2 = 1.44 …….

  9. Esimerkki: • Kymmenjärjestelmän luku 98.375 binääriluvuksi • kokonaisosa 98 • desimaaliosa .375 • tulos: 1100010.011

  10. Kymmenjärjestelmä => binäärijärjestelmä(toinen tapa) • Suoraan binäärijärjestelmän avulla • vähennetään toistuvasti 10-järjestelmän luvusta suurin mahdollinen kakkosen potenssi ja merkitään binääriluvussa sitä vastaamaan 1; muihin kohtiin 0. • Pitää muistaa tai laskea kakkosen potenssit: • 1, 2, 4, 8, 16, 32, 64, 128, .. • 0.50, 0.25, 0.125, 0.0625, ...

  11. Esimerkki • Desimaaliluku 98.375 binääriluvuksi • 98.375 - 64 = 34.375 => 2^6 =1 • 34.375 - 32 = 2.375 => 2^5 =1 • 2.375 - 2 = 0.375 => 2^1 =1 • 0.375 - 0.25 = 0.125 => 2^-2 =1 • 0.125 - 0.125 = 0.00 => 2^-3 =1 • => 1100010.011

  12. Oktaali- ja heksadesimaaliluvut • Oktaalijärjestelmässä kantaluku on 8 ja numerot ovat 0,1,2, 3, 4, 5, 6 ja 7. • Heksadesimaalijärjestelmässä kantaluku on 16 ja numerot ovat 0, 1, …, 9, A, B, C, D, E ja F. • Esimerkki: 7 A 5. C 16-järjestelmä 0111 1010 0101. 1100 2-järjestelmä toisin ryhmiteltynä 011 110 100 101. 110 2-järjestelmä 3 6 4 5. 6 8-järjestelmä

  13. Esimerkki • 98.375 = • 1 1 0 0 0 1 0. 0 1 1 binäärilukuna • 0 01 100 010. 011 ryhmiteltynä • 1 4 2 . 3 oktaalilukuna • 0110 0010. 0110 ryhmiteltynä • 6 2 . 6 heksades.lukuna

  14. oktaaliluku 1 4 2. 3 => 001 100 010 . 011 binääriluku • heksadesimaaliluku 6 2 . 6 => 0110 0010 . 0110 • etu- ja loppunollilla ei ole merkitystä, kuten ei desimaalijärjestelmässäkään

  15. 2.3. Datan esitys • Lausekielisissä ohjelmissa tietoa käsitellään aina muuttujien avulla • Muuttujalla on • tyyppi • esim. kokonaisluku, realiluku, merkki • arvo • Muuttujan arvo on muistin sanassa (tai sanoissa) binäärimuodossa. • Tyyppi määrää bittijonona esitetyn arvon tulkintatavan.

  16. 32 bitin sana muistissa voi olla esim. 0101001001000101100010101001110 • 32 bitin kokonaisluku • kaksi 16 bitin kokonaislukua • neljä ASCII-merkkiä • käsky • reaaliluku • jne.

  17. Binäärimuodossa oleva tieto tulkitaan yksinomaan sitä käsittelevän käskyn perusteella. • symbolinen konekieli sallii kirjaimiksi tarkoitettujen merkkijonojen yhteenlaskun • monet lausekielet tarkastavat, että muuttujaa käytetään vain tyypin kertomalla tavalla • Kokonaislukujen, reaalilukujen, merkkien ja käskyjen esitys muistissa on otettu huomioon jo koneen suunnitteluvaiheessa • Muiden tyyppien ja tietorakenteiden esitystapa määräytyy kielen ja laitteiston perusteella

  18. Tietotyypit lause- ja konekielissä • Tietotyypeillä on arvoalue ja operaatioita • Arvoalueeseen liittyy arvojen lukumäärä ja peräkkäisten arvojen väli • MC 6800 (v.75): • yksi tietotyyppi, 8-bitin kokonaisluku • nykyään operaatioita • 8-, 16- ja 32-bitin kokonais- ja liukuluvuille

  19. Javan kokonaisluvut • int(integer) • talletetaan luvun arvo binäärilukuna sanaan (= 16 tai 32 bittiä) • esim. 15 = 00 00 00 0E16 = 00000000 00000000 00000000 00001111 31 23 15 7 0

  20. Negatiivisten lukujen esittäminen Monta eri mahdollisuutta: Etumerkkibitti: • ensimmäinen bitti tulkitaan etumerkiksi • 1 = -, 0 = + • ja seuraavat bitit luvun itseisarvoksi • 1101 = -3 0101 = +3 • ongelma: -0 ja +0

  21. Kahden komplementti • kahden komplementtiesityksessä • positiiviset luvut esitetään sellaisenaan, mutta negatiiviset komplementtimuodossa: • X = X • -X = 2sananpituus - X = 232-X • Kahden komplementtiesitys saadaan laitteistossa helpostimuuttamalla luvun ykköset nolliksi ja nollat ykkösiksi ja lisäämällä lopuksi lukuun 1.

  22. Komplementtiesityksen hyödyt • vähennyslasku toteutettavissa helposti yhteenlaskun tavoin • vain yksi nolla • - 0 = 11111111 + 1 ======== 100000000 = 0 • 8 bitillä luvut -128 … 127 • 16 bitillä luvut 32767 .. -32768

  23. Kahden komplementin muodostaminen • 1. invertoidaan bitit (yhden komplementti) • 2. lisätään ykkönen • jos operaatio toistetaan saadaan alkuperäinen luku • 41 = 00101001 • - 41 ? invertoidaan =>11010110 lisätään 1 =>11010111 tarkistus: 00101000 +1 = 00101001 = 41

  24. Lisää esimerkkejä kahden komplementista • Esitetään luvut -1510ja -2410 kahdeksalla bitillä kahden komplementtina: • -1510 = - 11112 = - 0000 1111 ----> 1111 0000 + 1 =1111 0001 • -2410 = - 110002 = - 0001 1000 ----> 1110 0111 + 1 =1110 1000

  25. Yhteenlasku • 15 + 2 = 17 binäärimuodossa: 15 = 1111 2 = + 10 ----------- 17 = 10001

  26. Lasketaan 24-15 ja 15-24 24 0001 1000 - 15 + 1111 0001 ------ ------------------ = 9 (1) 0000 1001 ylivuotobitti unohdetaan 15 0000 1111 - 24 + 1110 1000 ----- ------------------- - 9 1111 0111 -1 = 1111 0110 => - 0000 1001 = - 910

  27. Onko binääriluku 1101 -3 vai 13? • alkaa ykkösellä, siis -3 • 0000 … 0111 positiivisia • 1000 … 1111 negatiivisia Negatiivisten lukujen sijoittuminen: 0 1 2 3 4 5 6 7 -8 -7 -6 -5 -4 -3 -2 -1

  28. Reaaliluvut • Reaaliluvut vastaavat tietokoneen liukulukuja. • Reaalilukuja on suljetulla välillä ääretön (ylinumeroituva) määrä, mutta liukulukuja on vain äärellinen määrä • ==> pyöristysvirheet ovat aina mukana laskuissa ja ne on otettava huomioon algoritmeissa • Javan tyyppi float, muissa usein real

  29. Liukuluvut • Liukuluku on muotoa +/- 0.23 * 10-4missä • +/- on etumerkki • 0.23 on mantissa-> tarkkuus • -4 on eksponetti -> arvoalue • Esimerkissä kantaluku on 10. Tietokoneessa kantalukukin on 2:n potenssi!

  30. Yleensä liukuluku normeerataan: 1/kantaluku =< mantissa <1 • Eksponentti käsitellään ilman etumerkkiä: • Valitaan jokin vakio nollatasoksi • Jos E on talletettu eksponentin arvo, M mantissa, S etumerkki (0 tai 1) ja N on nollataso, niin luku on (-1)S M * 2E-N • Siis E >= 0

  31. IEEE:n standardi • IEEE:n yksinkertaisen tarkkuuden liukuluvun esitysstandardissa kantaluku on 2 ja mantissa on normeerattu välille 1 =< M < 2 eli mantissan 1. bitti on aina 1. • Sitä ei siis tarvitse erikseen tallettaa • => saadaan yksi bitti lisää mantissaan • mutta se on otettava huomioon laskutoimituksissa • nollatasona on 127

  32. Esimerkki koodauksesta • 43.75 = 101011.11 binäärilukuna = 1.0101111 * 2^5 = 1.0101111 * 2^(132-127) 132 = 10000100 ==> bittijonoksi 0 10000100 01011110000… 0 S E: 8 b M: 23 b

  33. Esimerkki koodin purusta • 0 10000110011010 …0 • Mantissa = 1.01101 E =10000110= 2^7 + 2^2 + 2^1 = 128 + 4 + 2 = 134 Nollatason vähennys 134-127 = 7 Siis luku on 1.011010 *2^7 = 10110100 = 2^7 + 2^5 + 2^4 + 2^2 = 128 + 32 + 16 +4 = 180

  34. Merkit • Yhden merkin (Javan tyyppi char) tallettamiseen varattu tilaa esim. yksi tai kaksi tavua • Merkeillä on oma binäärikoodinsa • 7-bittinen ASCII: 128 merkkiä • 8-bittinen ASCII: 256 merkkiä • 8-bittinen ISO Latin: 256 merkkiä • 16-bittinen Unicode: yli 65 000 merkkiä • Koodit standardoitu

  35. Ohjelmointikielten tyypit • kokonaislukujen, liukulukujen ja merkkien esitys on otettu huomioon jo koneen suunnittelussa • ohjelmointikielen tyyppien, kuten totuusarvojen, taulukoiden, joukkojen jne. esittäminen ratkaistaan kääntäjässä

  36. Esimerkkejä: • taulukot: alkiot riveittäin (yleensä) tai sarakkeittain • tietueet: kentät peräkkäin • totuusarvot: 0 = epätosi, 1 = tosi • merkkijonot: ilmoitetaan jonon pituus tai loppuminen loppumerkillä

  37. Kuvat • viiva- eli vektorikuvat: • kuva koostuu suorista ja käyristä (objekteista) • nämä talletetaan sopivasti koodattuna: • alku- ja loppupiste • käyrän yhtälö • alueiden värit • rasterikuvat • talletus bittikarttoina • kustakin kuvan pisteestä väritieto

  38. Kuvatiedosto • Kuvatiedoston alussa otsake • talletusformaatin tunniste • formaatti määrittää kuvan tarkkuuden, ‘laadun’ • tieto värien valinnasta eli mikä ns. paletti • RGB on yleinen värien esitystapa, siinä värit esitetään kolmella perusvärillä • esim. (0,0,0) musta, (256,256,256) valkea ja (256, 0, 256) violetti • täysvärikuva: 24- tai 48-bittinen

  39. Kuvat yleensä pakataan • GIF-menetelmä (Graphic Interchange Format) • maks. 256 väriä • JPEG-menetelmä (Joint Photographic Experts Group) • 16 miljoonaa väriä, tehokas • TIFF-menetelmä (Tag Image File Format) • korkealaatuisia täysvärikuvia • BMP (Bit Map Picture) • MS Windows

  40. Videokuva • talletetaan yksittäisten kuvien sarjana ( esim. 25 kuvaa/s) • sekunti pakkaamatonta hyvälaatuista videokuvaa 20 MB • seuraava kuva poikkeaa edellisestä vain vähän • pakkausta voidaan tehostaa tallettamalla vain muutokset

  41. Esimerkkejä videostandardeista • MPEG (Moving Pictures Experts Group) • ISO:n standardi, eri versioita • AVI (Audio Visual Interleave) • MS Windows • MOV • INDEO, FLI, GL,..

  42. Äänen esitys • Kaksi perusvaihtoehtoa • syntetisoitu ääni • täydellinen äänidats • Syntetisoitu ääni • MIDI-käskyjä (Music Instrument Digital Interface) • “Soita nuotti N voimakkuudella X” • äänikorteissa yleensä General-Midi -standardia

  43. Täydellinen äänidata • PCM-koodaus • ääninäytteitä taajuudella 44.1 kHz eli 44100 kertaa sekunnissa • näyte kvantisoidaan • koodataan esim. 16 bitillä

  44. Esimerkkejä äänistandardeista • MIDI • WAV (Wave Form Audio File Format) • MS Windows • AU (ULAW) • NeXt-kone

  45. 2.4. Käskyjen esitys • Kullakin koneella oma käskykanta. Käskyn esitys muistissa on konekohtainen, ei standardoitu • RISC-kone (Reduced Instruction Set Computer) • mahdollisimman vähän käskyjä ja vain yksinkertaisia tietotyyppejä • RISC 1: 31 käskyä • CISC-kone (Complicated Instruction Set Computer) • runsas käskykanta • VAX: noin 340 käskyä. • Intel: noin 200 käskyä

  46. RISC-ohjelmat n. 70% pitempiä, mutta suoritusaika lyhempi kuin CISC-koneissa. • Kaikissa järjestelmissä käskyssä erotetaan: • operaatiokoodi • suoritettava toiminto + loppuosan tulkinta • operandit • tyyppi • sijainti • Saman koneen käskyt voivat olla eri pituisia

  47. 2.5. Tiedon oikeellisuus • Bitti voi muuttua muistissa tai tiedonsiirrossa. • Virheiden havaitsemista varten sanomassa tai tiedossa on ylimääräisiä bittejä. • Ylimääräisten bittien avulla laitteisto (esim. muisti) voi suorittaa tarkistuksia.

  48. Pariteetti • tavun tai sanan 1-bittien lukumäärän on oltava aina • parillinen (parillinen pariteetti) • pariton (pariton pariteetti) • pariteettibitti: 1 tai 0 siten, että ehto täyttyy • havaitsee yhden bitin muuttumisen, ei havaitse kahden bitin muuttumista • ei pysty korjaamaan virhettä

  49. Hammingin koodi • Käytetään useita pariteettibittejä • kaikki kakkosen potenssit eli bitit 1, 2, 4, 8, 16, 32 jne. ovat pariteettibittejä • kullakin pariteettibitillä tarkastetaan vain tiettyjen bittien oikeellisuutta • n. bittiä tarkistavat ne pariteettibitit, joiden summa on n • esim. 7. bittiä tarkistavat pariteettibitit 1, 2 ja 4. • => tarkistusbitti 1 tarkistaa kaikki parittomien paikkojen bitit ja tarkistusbitti 2 kaikki parillisten paikkojen bitit (tarkistusbittejä ei oteta huomioon!)

  50. käytetään parillista pariteettia • tarkistuksessa lasketaan ykkösten lukumäärät uudelleen kullekin tarkistusbitille • ottaen mukaan myös ko. tarkistusbitti • ‘virheelliset’ tarkistusbitit kertovat, missä bitissä virhe on tapahtunut • esim. tarkistusbittejä 1 ja 4 laskettaessa ei saatu parillista ykkösten määrää => 5. bitti on virheellinen • yksi virheellinen bitti pystytään korjaamaan!

More Related