Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

7. Tiedon esittäminen 7.1. Tieto bittimuodossa 7.2. Binääriluvut

Samankaltaiset esitykset


Esitys aiheesta: "7. Tiedon esittäminen 7.1. Tieto bittimuodossa 7.2. Binääriluvut"— Esityksen transkriptio:

1 7. Tiedon esittäminen 7.1. Tieto bittimuodossa 7.2. Binääriluvut
7.3. Lukujen esitys 7.4. Muun datan esitys 7.5. Käskyn esittäminen 21/09/2018 Liisa Marttinen kevät 2005

2 7.1 Tieto bittimuodossa Kaikki tietokoneessa esitettävä tieto on binäärimuodossa eli binääribitteinä 0 ja 1 esitettynä sekä käskyt että käsiteltävä data helppo toteuttaa piireillä helppo suunnitella logiikka Boolen algebran avulla Tieto sijaitsee muistissa, joka on jaettu sanoihin sana 32 bittiä (64 bittiä, 16 bittiä,..) sana koostuu yleensä 8 bitin tavuista 21/09/2018 Liisa Marttinen kevät 2005

3 Tiedon tyypit ihmisten kommunikoinnissa laitteiston sisäinen talletus
ääntä, kuvaa, merkkejä, .. laitteiston sisäinen talletus erilaisia koodaustapoja: merkeille, kuville, luvuille, äänelle, ohjelmille, … suorittimelle tyyppi on eri tyyppi vain, jos sen käsittelyyn on omat konekäskyt kokonaisluvut ja liukuluvut yleensä kaikissa totuusarvot ja merkit joissakin konekäskyt 21/09/2018 Liisa Marttinen kevät 2005

4 Tiedon esitys On luotava säännöt tiedon koodaamiselle biteiksi
numerot teksti kuvat ja piirrokset ääni, liikkuva kuva Hyvin paljon erilaisia koodausmenetelmiä ongelmia esitysmuotojen ymmärtämisen kanssa 21/09/2018 Liisa Marttinen kevät 2005

5 tietokonesana: 2, 4 tai 8 tavua bittien numerointi
Bittiesitys 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ä eniten merkitsevä bitti bitti

6 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 21/09/2018 Liisa Marttinen kevät 2005

7 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. 21/09/2018 Liisa Marttinen kevät 2005

8 32 bitin sana muistissa voi olla esim. 0101001001000101100010101001110
32 bitin kokonaisluku kaksi 16 bitin kokonaislukua neljä ASCII-merkkiä käsky reaaliluku jne. 21/09/2018 Liisa Marttinen kevät 2005

9 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

10 Binäärijärjestelmä 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ä 21/09/2018 Liisa Marttinen kevät 2005

11 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 = 1*26+ 1*25 + 1*23 +1* *2-2 = /2 + 1/4 = 21/09/2018 Liisa Marttinen kevät 2005

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

13 0.73 * 2 = 1.46 Desimaaliosa kerrotaan toistuvasti luvulla 2.
Tulos saadaan merkitsemällä ylös kokonaisosat saadussa järjestyksessä esim ~ 0.73 * 2 = 1.46 0.46 * 2 = 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 …….

14 Esimerkki: Kymmenjärjestelmän luku binääriluvuksi kokonaisosa 98 desimaaliosa .375 tulos: 21/09/2018 Liisa Marttinen kevät 2005

15 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, , ... 21/09/2018 Liisa Marttinen kevät 2005

16 Esimerkki Desimaaliluku 98.375 binääriluvuksi
= => 2^6 =1 = => 2^5 =1 = => 2^1 =1 = => 2^-2 =1 = => 2^-3 =1 => 21/09/2018 Liisa Marttinen kevät 2005

17 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: A C järjestelmä järjestelmä toisin ryhmiteltynä järjestelmä järjestelmä 21/09/2018 Liisa Marttinen kevät 2005

18 Esimerkki 98.375 = 1 1 0 0 0 1 0. 0 1 1 binäärilukuna
= binäärilukuna ryhmiteltynä oktaalilukuna ryhmiteltynä heksades.lukuna 21/09/2018 Liisa Marttinen kevät 2005

19 oktaaliluku 1 4 2 . 3 => 001 100 010 . 011 binääriluku
heksadesimaaliluku => etu- ja loppunollilla ei ole merkitystä, kuten ei desimaalijärjestelmässäkään 21/09/2018 Liisa Marttinen kevät 2005

20 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 21/09/2018 Liisa Marttinen kevät 2005

21 7.3 Lukujen esittäminen binäärimuotoisena
etumerkittömät kokonaisluvut int (integer) (esim. Javan kokonaisluvut) talletetaan luvun arvo binäärilukuna sanaan (= 16 tai 32 bittiä) esim. 15 = E16 = 21/09/2018 Liisa Marttinen kevät 2005

22 Negatiivisten lukujen esittäminen
Monta eri mahdollisuutta: Etumerkkibitti: ensimmäinen bitti tulkitaan etumerkiksi 1 = -, 0 = + (esimerkiksi näin) ja seuraavat bitit luvun itseisarvoksi 1101 = = +3 ongelma: -0 ja +0 -0 = , +0 = ovat erilaiset 21/09/2018 Liisa Marttinen kevät 2005

23 Kahden komplementti kahden komplementtiesityksessä X = X
positiiviset luvut esitetään sellaisenaan, mutta negatiiviset komplementtimuodossa: X = X -X = 2sananpituus - X = 232-X Kahden komplementtiesitys saadaan laitteistossa helposti muuttamalla luvun ykköset nolliksi ja nollat ykkösiksi ja lisäämällä lopuksi lukuun 1. 21/09/2018 Liisa Marttinen kevät 2005

24 Komplementtiesityksen hyödyt
vähennyslasku toteutettavissa helposti yhteenlaskun tavoin vain yksi nolla - 0 = ======== = 0 8 bitillä luvut -128 … 127 16 bitillä luvut 21/09/2018 Liisa Marttinen kevät 2005

25 Kahden komplementin muodostaminen
1. invertoidaan bitit (yhden komplementti) 2. lisätään ykkönen jos operaatio toistetaan saadaan alkuperäinen luku 41 = - 41 ? invertoidaan => lisätään => tarkistus: = = 41 21/09/2018 Liisa Marttinen kevät 2005

26 Lisää esimerkkejä kahden komplementista
Esitetään luvut ja kahdeksalla bitillä kahden komplementtina: -1510 = = > = -2410 = = > = 21/09/2018 Liisa Marttinen kevät 2005

27 Yhteenlasku 15 + 2 = 17 binäärimuodossa: 15 = 1111 2 = + 10
15 = 2 = 17 = 21/09/2018 Liisa Marttinen kevät 2005

28 Lasketaan ja 15-24 = (1) ylivuotobitti unohdetaan = => = - 910 21/09/2018 Liisa Marttinen kevät 2005

29 Onko binääriluku 1101 -3 vai 13? alkaa ykkösellä, siis -3
0000 … 0111 positiivisia 1000 … 1111 negatiivisia Negatiivisten lukujen sijoittuminen: 21/09/2018 Liisa Marttinen kevät 2005

30 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 21/09/2018 Liisa Marttinen kevät 2005

31 Liukuluvut +/- 0.23 * 10-4 missä Liukuluku on muotoa +/- on etumerkki
0.23 on mantissa -> tarkkuus -4 on eksponetti -> arvoalue Esimerkissä kantaluku on 10. Tietokoneessa kantalukukin on 2:n potenssi! 21/09/2018 Liisa Marttinen kevät 2005

32 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 21/09/2018 Liisa Marttinen kevät 2005

33 IEEE:n standardi nollatasona on 127
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 21/09/2018 Liisa Marttinen kevät 2005

34 Esimerkki koodauksesta
43.75 = binäärilukuna = * 2^5 = * 2^( ) = ==> bittijonoksi … 0 S E: 8 b M: 23 b 21/09/2018 Liisa Marttinen kevät 2005

35 Esimerkki koodin purusta
…0 Mantissa = E = = 2^7 + 2^2 + 2^1 = = 134 Nollatason vähennys = 7 Siis luku on *2^7 = = 2^7 + 2^5 + 2^4 + 2^2 = = 180 21/09/2018 Liisa Marttinen kevät 2005

36 7.3 Muun datan esittäminen
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 merkkiä Koodit standardoitu 21/09/2018 Liisa Marttinen kevät 2005

37 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ä 21/09/2018 Liisa Marttinen kevät 2005

38 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ä 21/09/2018 Liisa Marttinen kevät 2005

39 Kuvat viiva- eli vektorikuvat: rasterikuvat
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 21/09/2018 Liisa Marttinen kevät 2005

40 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 21/09/2018 Liisa Marttinen kevät 2005

41 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 21/09/2018 Liisa Marttinen kevät 2005

42 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 21/09/2018 Liisa Marttinen kevät 2005

43 Esimerkkejä videostandardeista
MPEG (Moving Pictures Experts Group) ISO:n standardi, eri versioita AVI (Audio Visual Interleave) MS Windows MOV INDEO, FLI, GL,.. 21/09/2018 Liisa Marttinen kevät 2005

44 Ää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 21/09/2018 Liisa Marttinen kevät 2005

45 Täydellinen äänidata PCM-koodaus
ääninäytteitä taajuudella 44.1 kHz eli kertaa sekunnissa näyte kvantisoidaan koodataan esim. 16 bitillä 21/09/2018 Liisa Marttinen kevät 2005

46 Esimerkkejä äänistandardeista
MIDI WAV (Wave Form Audio File Format) MS Windows AU (ULAW) NeXt-kone 21/09/2018 Liisa Marttinen kevät 2005

47 7.4. Käskyjen esitys RISC-kone (Reduced Instruction Set Computer)
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ä 21/09/2018 Liisa Marttinen kevät 2005

48 Kaikissa järjestelmissä käskyssä erotetaan:
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 21/09/2018 Liisa Marttinen kevät 2005

49 7.5. Tiedon muuttumattomuus
Bitti voi muuttua muistissa tai tiedonsiirrossa. muistipiirissä oleva vika voi aiheuttaa virheen (staattinen) pölyhiukkanen tms. voi aiheuttaa virheen (transientti) virhe, jota ei korjata, voi aiheuttaa häiriön Virheiden havaitsemista varten sanomassa tai tiedossa on ylimääräisiä bittejä. Ylimääräisten bittien avulla laitteisto (esim. muisti) voi suorittaa tarkistuksia. Yleisessä tapauksessa ei tiedon oikeellisuutta voi tarkastaa! 21/09/2018 Liisa Marttinen kevät 2005

50 Esimerkkejä tarkistusmerkeistä
ohjelmallisesti tarkistettavia henkilötunnus: D MOD 31 = 13 (=jakojäännös) viimeinen merkki saadaan jakojäännöksestä ABCDEFGHJK LMPRSTUVWZ Y D huomataan virheelliseksi 21/09/2018 Liisa Marttinen kevät 2005

51 tarkistusmerkki auttaa havaitsemaan virheen
voidaan aina havaita yhden merkin virhe jos useampi muuttuu, niin sitä ei enää välttämättä havaita virhettä ei voida korjata ei tarkasteta henkilötunnuksen välimerkkiä (-, +, A) D Kumpi on väärin? Vai onko joku muu merkki väärin? 21/09/2018 Liisa Marttinen kevät 2005

52 Bittitason tarkistukset
muistipiirit, väylät, tiedonsiirrot Monenko bitin muuttuminen havaitaan? Monenko bitin muuttuminen pystytään korjaamaan? Paljonko ylimääräisiä bittejä tarvitaan havaitsemiseen ja korjaamiseen kuluttaa muistitilaa lisää piuhoja väylään Tehdäänkö tarkistukset laitteisto- vai ohjelmistotasolla hetu: 1 hetu: 0 hetu n. 10% hetu: ohjelmistotasolla 21/09/2018 Liisa Marttinen kevät 2005

53 Pariteetti tavun tai sanan 1-bittien lukumäärän on oltava aina
parillinen (parillinen pariteetti) pariton (pariton pariteetti) ylimääräinen pariteettibitti: 1 tai 0 siten, että ehto täyttyy havaitsee yhden bitin muuttumisen, ei havaitse kahden bitin muuttumista ei pysty korjaamaan virhettä 21/09/2018 Liisa Marttinen kevät 2005

54 Hamming-etäisyys Montako bittiä jossain koodijärjestelmässä täytyy muuttua, jotta saadaan laillinen koodi Esim. ISO Latin-9 A = B = C = 2 bittiä 1 bitti Hamming –etäisyys on 1. Pariteettibitin kanssa etäisyys on 2. Yleensä todennäköisyys kahden bitin virheelle on paljon pienempi kuin yhden bitin virheelle! 21/09/2018 Liisa Marttinen kevät 2005

55 Virheen korjaava Hamming-koodi
B C 1 A B C 1 A B C 1 1 Luku: 1100 Tarkistusbitit lisättynä Bitti muuttunut Kukin databitti kuuluu erilaisiin pariteettijoukkoihin. Koska on 4 databittiä, tarvitaan 3 pariteettibittiä. Virheen havainneet pariteettijoukot pystyvät korjaamaan virheen.

56 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!) 21/09/2018 Liisa Marttinen kevät 2005

57 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! kaksi virheellistä havaitaan 21/09/2018 Liisa Marttinen kevät 2005

58 data + pariteettibitit
pariteettibittien paikat ? ?0? 100 ? ? databittien paikat 21/09/2018 Liisa Marttinen kevät 2005

59 Kukin pariteettibitti tarkistaa vain tiettyjen bittien muuttumattomuutta:
sijaintipaikassa n olevaa bittiä tarkastavat ne pariteettibitit, joiden summa on n: n= 7 = 111 eli summa on => pariteettibitit paikoissa 1, 2 ja 4 tarkistavat paikassa 7 olevaa bittiä. n=10 = 1010 eli summa on 2+8 => tätä bittiä tarkastavat pariteettibitit paikoissa 2 ja 8.

60 Esimerkki: data = ? ? ? ? pariteettibitti 1 varmistaa kaikki parittomissa paíkoissa olevat bitit : =>P1= 0 pariteettibitti 2 varmistaa paikoissa 2, 3, 6, 7, 10, 11 olevat bitit : =>P2 =0 pariteettibitti 4 varmistaa paikoissa 4, 5, 6, 7 ja 12 olevat bitit => P4= 0 pariteettibitti 8 varmistaa paikoissa 8, 9, 10, 11, 12 olevat bitit => P8 =0 21/09/2018 Liisa Marttinen kevät 2005

61 P => pariton lukumäärä ykkösiä! P => pariton lukumäärä ykkösiä P1 ja P8 antavat parillisen määrän eli niiden tarkistamissa paikoissa ei ole virheitä. Koska P2 ja P4 ilmoittavat virheestä => virheellinen bitti on paikassa = 6.

62 Tiedonsiirto CRC (Cyclic Redundancy Check)
tarkistusmerkit lasketaan siirrettävästä tiedosta ja siirretään tiedon perässä vastaanottaja tarkastaa koko saamansa sanoman (= varsinainen tieto + tarkistusmerkit) ja havaitsee, onko tapahtunut virhettä vai ei voimakas virheenpaljastusmenetelmä 21/09/2018 Liisa Marttinen kevät 2005


Lataa ppt "7. Tiedon esittäminen 7.1. Tieto bittimuodossa 7.2. Binääriluvut"

Samankaltaiset esitykset


Iklan oleh Google