OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 6: Tiedon esittäminen tietokoneessa, osa 1 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al.
Luennon aiheet Bitit ja binäärilukujärjestelmä Boolen algebra Loogiset portit Tiedon esittäminen bittien avulla
Miten tietokone toimii? Hieman yksinkertaistaen, tietokone osaa Esittää tietoa nollien ja ykkösten kautta Tallentaa ykkösiä ja nollia muistiinsa Tehdä laskutoimituksia ykkösillä ja nollilla Siirrellä ykkösiä ja nollia paikasta toiseen Muodostaa yksinkertaisten toimintojen avulla uusia nollia ja ykkösiä Nollien ja ykkösten yksinkertaisia käsittelyjä yhdistämällä saadaan monimutkaisempia toimintoja Täten on mahdollista luoda esimerkiksi sujuvasti käytettävä tekstinkäsittelyohjelma Vaikuttaa ymmärtävän ja tallentavan tekstiä Oikeasti ymmärtää ja tallentaa vain nollia ja ykkösiä
Nollista ja ykkösistä Tietokoneiden toiminta perustuu pitkälti nollien ja ykkösten käsittelyyn Tutustutaan seuraavaksi nollia ja ykkösiä sivuaviin aiheisiin Bitti Binäärilukujärjestelmä Boolen algebra Loogiset portit... sitten tutustumme tutustumme tarkemmin tietokoneisiin
Bitti Bitti on binäärilukujärjestelmän luku, 0 tai 1 Bitti on pienin tiedon yksikkö tietokoneessa Bitin voi esittää tietokoneessa kaksitilaisten fysikaalisten systeemien tiloina, esimerkiksi: jännitetasojen avulla (johtimessa joko on sähköä tai ei ole) polttamalla jäljen CD-levyn pintaan magneettisuuden avulla Bitin arvo voidaan tulkita myös totuusarvona: 0 = epätosi (false) 1 = tosi (true) Boolen funktioiden (eli operaatioiden) avulla voidaan käsitellä bittien arvoja
Desimaalilukujärjestelmän pikakertaus 1976 Desimaalijärjestelmän kantaluku on 10
Desimaalilukujärjestelmän pikakertaus 10³ tuhannet 10² 10¹ sadat kymmenet 10 ykköset 1976 Desimaalijärjestelmän kantaluku on 10
Desimaalilukujärjestelmän pikakertaus 10³ tuhannet 10² 10¹ sadat kymmenet 10 ykköset 1976 Desimaalijärjestelmän kantaluku on 10 10³ * 1 + 10² * 9 + 10¹ * 7 + 10 * 6
Desimaalilukujärjestelmän pikakertaus 10³ tuhannet 10² 10¹ sadat kymmenet 10 ykköset 1976 Desimaalijärjestelmän kantaluku on 10 10³ * 1 + 10² * 9 + 10¹ * 7 + 10 * 6 1000 * 1 + 100 * 9 + 10 * 7 + 1 * 6 = 1976
Desimaalilukujärjestelmän pikakertaus 10³ tuhannet 10² 10¹ sadat kymmenet 10 ykköset 1976 Desimaalijärjestelmän kantaluku on 10 10³ * 1 + 10² * 9 + 10¹ * 7 + 10 * 6 1000 * 1 + 100 * 9 + 10 * 7 + 1 * 6 = 1976 Jos desimaaliuvussa on 4 numeroa, niin silloin sillä voi ilmaista 4 4 10 erilaista lukua: 0-9999. Suurin mahdollinen lukuarvo on 10-1.
Binäärilukujärjestelmä 1011 Binäärilukujärjestelmän kantaluku on 2
Binäärilukujärjestelmä 2² 2¹ 2³ 1011 2 Binäärilukujärjestelmän kantaluku on 2
Binäärilukujärjestelmä 2² 2¹ 2³ 1011 2 Binäärilukujärjestelmän kantaluku on 2 2³ * 1 + 2² * 0 + 2¹ * 1 + 2 * 1
Binäärilukujärjestelmä 2² 2¹ 2³ 1011 2 Binäärilukujärjestelmän kantaluku on 2 2³ * 1 + 2² * 0 + 2¹ * 1 + 2 * 1 8 * 1 + 4 * 0 + 2 * 1 + 1 * 1 = 11 (d. lukuna)
Binäärilukujärjestelmä 2² 2¹ 2³ 1011 2 Binäärilukujärjestelmän kantaluku on 2 2³ * 1 + 2² * 0 + 2¹ * 1 + 2 * 1 8 * 1 + 4 * 0 + 2 * 1 + 1 * 1 = 11 (d. lukuna) Jos binaariluvussa on 4 numeroa, niin silloin sillä voi ilmaista 4 4 2 erilaista lukua: 0000-1111. Suurin lukuarvo on 2-1.
Binäärilukujen muuttaminen desimaaliluvuiksi Mitä 11001 on desimaalilukuna?
Binäärilukujen muuttaminen desimaaliluvuiksi Mitä 11001 on desimaalilukuna? 1 1 0 0 1 16 8 4 2 1
Binäärilukujen muuttaminen desimaaliluvuiksi Mitä 11001 on desimaalilukuna? 1 1 0 0 1 16 8 4 2 1 16*1 8*1 4*0 2*0 1*1
Binäärilukujen muuttaminen desimaaliluvuiksi Mitä 11001 on desimaalilukuna? 1 1 0 0 1 16 8 4 2 1 16*1 8*1 4*0 2*0 1*1 16 + 8 + 0 + 0 + 1 = 25
Binäärilukujen muuttaminen desimaaliluvuiksi Mitä 11001 on desimaalilukuna? 1 1 0 0 1 16 8 4 2 1 16*1 8*1 4*0 2*0 1*1 16 + 8 + 0 + 0 + 1 = 25 Esitä 10010011 on desimaalilukuna
Binäärilukujen muuttaminen desimaaliluvuiksi Mitä 11001 on desimaalilukuna? 1 1 0 0 1 16 8 4 2 1 16*1 8*1 4*0 2*0 1*1 16 + 8 + 0 + 0 + 1 = 25 Esitä 10010011 on desimaalilukuna =147 Esitä 10000001001 on desimaalilukuna
Binäärilukujen muuttaminen desimaaliluvuiksi Mitä 11001 on desimaalilukuna? 1 1 0 0 1 16 8 4 2 1 16*1 8*1 4*0 2*0 1*1 16 + 8 + 0 + 0 + 1 = 25 Esitä 10010011 on desimaalilukuna =147 Esitä 10000001001 on desimaalilukuna =1033
Desimaaliluku binääriksi Muutetaan 74 binääriluvuksi 64 ok 1 (74-64=10) 32 ei 0 16 ei 0 8 ok 1 (10-8=2) 4 ei 0 2 ok 1 (2-2=0) 1 ei 0 = 1001010 (BIN)
Bittien yhteenlasku 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10 (2² * 1 + 2 * 0 = 2)
Bittien yhteenlasku 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10 (2² * 1 + 2 * 0 = 2) 1011 + 0010? 1011 + 0010
Bittien yhteenlasku 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10 (2² * 1 + 2 * 0 = 2) 1011 + 0010? 1011 + 0010 1
Bittien yhteenlasku 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10 (2² * 1 + 2 * 0 = 2) 1011 + 0010? 1 1011 + 0010 01 1 + 1 = 10, joten 1 muistiin!
Bittien yhteenlasku 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10 (2² * 1 + 2 * 0 = 2) 1011 + 0010? 1 1011 + 0010 101
Bittien yhteenlasku 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10 (2² * 1 + 2 * 0 = 2) 1011 + 0010? 1 1011 + 0010 1101
Bittien yhteenlaskuharjoitus Paljonko on 010 + 111 binaarina ja desimaalina?
Bittien yhteenlaskuharjoitus Paljonko on 010 + 111 binaarina ja desimaalina? 1 010 + 111 1001
Bittien yhteenlaskuharjoitus Paljonko on 010 + 111 binaarina ja desimaalina? 1 010 + 111 1001 1 0 0 1 8 4 2 1 8*1 4*0 2*0 1*1 8 + 0 + 0 + 1 = 9
Boolen algebra (George Boole) Boolen algebra on laskentamalli, jolla voidaan käsitellä bittien arvoja Perusoperaatiot: JA, TAI sekä EI The NOT operation NOT 1 = 0 NOT 0 = 1
Loogiset portit Boolen operaatiot voidaan esittää loogisilla porteilla Yksittäinen looginen portti voidaan rakentaa muutamalla elektroniikan peruskomponentilla Laittamalla loogisia portteja tarpeeksi peräkkäin saadaan monimutkaisempia operaatioita ja piirejä Yksittäisen portin ulostulo määräytyy sen sisääntulosta
Loogiset portit - demonstraatio Itseopiskelua varten http://isweb.redwoods.cc.ca.us/instruct/calderwoodd/diglogic/index.htm
Bitti, tavu, megatavu, gigatavu, teratavu, Bitti on pienin tiedon yksikkö tietokoneessa, ja se voi saada arvot 0 tai 1 Kahdeksan bittiä muodostaa tavun (byte) 1024 tavua on kilotavu 1024 kilotavua on megatavu 1024 megatavua on? Huomaa ero kertoimessa, 1kg = 1000g
Tiedon esittäminen bittien avulla Kaikki digitaalinen tieto esitetään bittijonoina Miten tiedetään, mitä vaikkapa bittijono 010010000110010101101100011011000110111100101110 esittää? Ei mistään: kyse on viime kädessä siitä, mitä on sovittu, että kyseinen bittijono esittää Voi olla esimerkiksi sovittu, että yllä oleva bittijono tulee tulkita tekstinä seuraavasti: Bittijonoa tulkitaan tavuina eli 8 bitin ryppäinä Tavun arvo muutetaan desimaaliluvuksi, ja sitä vastaava kirjain etsitään järjestysnumeron perusteella ASCII-taulukosta (American Standard Code for Information Interchange) http://www.asciitable.com/ Tiedosta pitää aina tietää se, miten se tulee tulkita
Tekstin esittäminen bittien avulla Tekstin esittäminen Kirjoitusmerkkejä on rajallinen määrä, joten voidaan sopia että tietty bittikuvio esittää tiettyä merkkiä. Yleisessä ASCII-järjestelmässä on 8 bittiä / merkki
Kuvan esittäminen bittien avulla Miten voidaan luoda bittijono, joka esittää seuraavaa 3x3 pikselin kuvaa? Ratkaisu #1: sovitaan, että kaikki kuvaformaatin kuvat ovat kooltaan 3x3 pikseliä, ja että kunkin pikselin väri merkitään yhtenä bittinä edeten vasemmalta oikealle ja ylhäältä alas siten, että 0=musta ja 1=valkoinen 010010000
Kuvan esittäminen bittien avulla Miten voidaan luoda bittijono, joka esittää seuraavaa 3x3 pikselin kuvaa? 0 1 0 0 1 0 0 0 0 Ratkaisu #1: sovitaan, että kaikki kuvaformaatin kuvat ovat kooltaan 3x3 pikseliä, ja että kunkin pikselin väri merkitään yhtenä bittinä edeten vasemmalta oikealle ja ylhäältä alas siten, että 0=musta ja 1=valkoinen 010010000
Kuvan esittäminen bittien avulla Miten voidaan luoda bittijono, joka esittää seuraavaa 3x3 pikselin kuvaa? Ratkaisu #2: sovitaan, että ensimmäinen tavu kertoo leveyden, toinen korkeuden, ja kolmas tavu kunkin pikselin värin: 00000000 00000000 00000000 00000001 00000000 00000001 00000010 00000000 00000001... 00000011 00000011 00000000
Kuvan esittäminen bittien avulla Miten voidaan luoda bittijono, joka esittää seuraavaa 3x3 pikselin kuvaa? 0 1 0 1 2 Ratkaisu #2: sovitaan, että ensimmäinen tavu kertoo leveyden, toinen korkeuden, ja kolmas tavu kunkin pikselin värin: 2 00000000 00000000 00000000 00000001 00000000 00000001 00000010 00000000 00000000... 00000010 00000010 00000000
Kuvan esittäminen bittien avulla Miten voidaan luoda bittijono, joka esittää seuraavaa 3x3 pikselin kuvaa? 0 1 0 1 2 Ratkaisu #2: sovitaan, että ensimmäinen tavu kertoo leveyden, toinen korkeuden, ja kolmas tavu kunkin pikselin värin: 2 00000000 00000000 00000000 00000001 00000000 00000001 00000010 00000000 00000000... 00000010 00000010 00000000
Heksadesimaaliluvut Pitkien bittijonojen esittäminen vie paperilla paljon tilaa Toisaalta aina ei ole järkevää muuttaa jonoa 10- järjestelmän luvuksikaan Tämän vuoksi luvut esitetään joskus heksadesimaalimuodossa, jossa lukujärjestelmän kantaluku on 16 Käytössä on tällöin numerot 0-9 ja kirjaimet A-F (koska numerot loppuivat kesken). Binaariluvun muuttaminen "heksaksi" on helppoa, koska yhtä heksadesimaalijärjestelmän numeroa vastaa tasan neljä bittiä
Binääri-, heksa- ja 10-järjestelmä Alla on taulukko, jossa luetellaan kaikki mahdolliset neljän bitin jonot, niiden heksaesitys ja vastaava kymmenjärjestelmän luku:
Binääriluku heksadesimaaliluvuksi Esimerkki 01011110101101010010 = 0101 1110 1011 0101 0010
Binääriluku heksadesimaaliluvuksi Esimerkki 01011110101101010010 = 0101 1110 1011 0101 0010 = 5 E B 5 2 = 5EB52 (HEX)
Binääriluku heksadesimaaliluvuksi Esimerkki 01011110101101010010 = 0101 1110 1011 0101 0010 = 5 E B 5 2 = 5EB52 (HEX) 4 (16 * 5 + 16³ * 14 + 16² * 11 + 16¹ * 5 + 16 * 2) = 387922 (DEC)
Värejä heksadesimaalien avulla Värit esitetään usein RGB-koodattuina XML-koodaus: risuaita + 3 heksadesimaalilukua väliltä 0-255 #RRGGBB, esimerkiksi #50C882 Kuvalähde: http://en.wikipedia.org/wiki/rgb_color (25.8.2008)
Outo osoite... http://en.wikipedia.org/wiki/main%20page url-osoitteet eivät saa sisältää tiettyjä merkkejä Välilyönnit ovat eräs kielletty merkki url-osoitteisiin voi sisällyttää välilyönnin merkitsemällä sen ASCII-arvon heksadesimaalina prosenttimerkin perään
Outo osoite... http://en.wikipedia.org/wiki/main%20page url-osoitteet eivät saa sisältää tiettyjä merkkejä Välilyönnit ovat eräs kielletty merkki url-osoitteisiin voi sisällyttää välilyönnin merkitsemällä sen ASCII-arvon heksadesimaalina prosenttimerkin perään Mikä on välilyönnin ASCII-arvo? 2 0 (HEX)
Outo osoite... http://en.wikipedia.org/wiki/main%20page url-osoitteet eivät saa sisältää tiettyjä merkkejä Välilyönnit ovat eräs kielletty merkki url-osoitteisiin voi sisällyttää välilyönnin merkitsemällä sen ASCII-arvon heksadesimaalina prosenttimerkin perään Mikä on välilyönnin ASCII-arvo? 2 0 (HEX) 16 *0 = (DEC)
Outo osoite... http://en.wikipedia.org/wiki/main%20page url-osoitteet eivät saa sisältää tiettyjä merkkejä Välilyönnit ovat eräs kielletty merkki url-osoitteisiin voi sisällyttää välilyönnin merkitsemällä sen ASCII-arvon heksadesimaalina prosenttimerkin perään Mikä on välilyönnin ASCII-arvo? 2 0 (HEX) 16¹*2 + 16 *0 = 32 (DEC)
Luennon aiheet Bitit ja binäärilukujärjestelmä Boolen algebra Loogiset portit Heksadesimaaliluvut Tiedon esittäminen bittien avulla