110 likes | 256 Views
Luku- ja merkkikoodit. UTF-8. Gray. ISO 8859. BCD. ASCII. Unicode. ISO 10646 (UCS). UCS-2. Johdanto. Tässä luvussa esitetään kymmenjärjestelmän lukujen eli BCD -lukujen esitystapoja digitaalilaitteissa ja lisäsisältönä NBCD -lukujen yhteenlaskualgoritmi
E N D
Luku- ja merkkikoodit UTF-8 Gray ISO 8859 BCD ASCII Unicode ISO 10646 (UCS) UCS-2
Johdanto Tässä luvussa • esitetään kymmenjärjestelmän lukujen eli BCD-lukujen esitystapoja digitaalilaitteissa ja lisäsisältönä NBCD-lukujen yhteenlaskualgoritmi • esitellään erityisesti muuttuvien signaalien koodaukseen soveltuvat Gray-koodit • esitetään tärkeimmät merkkien, kuten kirjainten ja muiden kirjoituksessa käytettävien merkkien koodaamiseen käytettävät merkkikoodit Luvun tavoitteena on • antaa käsitys muiden lukujen kuin binaarilukujen esittämisestä digitaalilaitteissa • tutustuttaa tärkeimpiin merkkikoodeihin ja niiden ominaisuuksiin
Kymmenjärjestelmän lukujen esitys digitaalilaitteissa • Joissakin tapauksissa on edullista käyttää lukujen esitykseen 10-järjestelmää eikä 2-järjestelmää • syöttö ja tulostus 10-järjestelmässä • vain vähän tai ei ollenkaan laskentaa • Tällöin koodataan 10-järjestelmän luvut numeroittain • Koodeja nimitetään BCD-koodeiksi (Binary Coded Decimal) • Tarvitaan vähintään neljä bittiä (23 = 8, 24 = 16) • Erilaisia 4-bittisiä BCD-koodeja on noin 76 000 000 • Yleisin on NBCD-koodi (Natural BCD); usein tätä nimitetään BCD-koodiksi • NBCD-koodissa kymmenjärjestelmän numeroa vastaa sen binaariesitys neljällä bitillä • NBCD-koodi on painotettu koodi (weighted code) • koodisanan arvo lasketaan sen bittien arvojen painotettuna summana • NBCD-koodin painot ovat 8, 4, 2 ja 1 • NBCD-koodia nimitetään myös 8421-koodiksi BCD
NBCD-koodi NBCD-koodit Numero Koodi 00000 1000120010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 • Koodisanat 1010 ... 1111 eivät ole käytössä. • Moninumeroiset kymmenjärjestelmän luvut esitetään kirjoittamalla numeroiden BCD-koodit peräkkäin Esimerkki: 18510 = 0001 1000 0101NBCD(= 101110012) • Luvun BCD-esityksessä on lähes aina enemmän bittejä kuin sen binaari- • esityksessä ? 1 NBCD
Gray-koodit 1 • Keskeinen ominaisuus: koodisanasta seuraavaan vain yksi bitti muuttuu • Käytetään mm. muuttuvien analogiasuureiden digitalisoinnissa • Vältetään binaarikoodia käytettäessä syntyvät virhetilanteet koodisanan muuttuessa • Esimerkki: Akselin asennon osoitus koodikiekolla • binaarikoodissa haluttu muutos 11 00: virhe 11 10 00 • Gray-koodissa haluttu muutos 10 00: ei virhettä GRAY 1 1 1 1 1 0 0 0 Virhe! Anturit oikein Anturit sivussa Anturit oikein Anturit sivussa Binaarikoodi Gray-koodi
Gray-koodeja 1-bittinen 2-bittinen 0 00 1 011110 Gray-koodeja 1-bittinen 2-bittinen 0 00 1 01 11 10 Gray-koodeja 1-bittinen 2-bittinen 3-bittinen 4-bittinen 0 00 000 0000 1 01 001 0001 11 011 0011 10 010 0010 110 0110 111 0111 101 0101 100 0100 1100 1101 1111 1110 1010 1011 1001 1000 Peilataan Peilataan Lisätään bitti Lisätään bitti Gray-koodit 2 • Koodisanojen määrä ja pituus valittavissa • Koodisanojen määrä voi olla mikä tahansa parillinen luku • Koodisanojen määrää lisätään peilaamalla ? 2 GRAY
Merkkikoodit • Digitaalilaitteissa esitetään erilaisia merkkejä, kuten • kirjaimia • numeroita (muutoin kuin binaarilukuina) • erikoismerkkejä • puoligraafisia merkkejä • ohjausmerkkejä (ohjauskoodeja) • Esittämiseen käytetään merkkikoodeja (character code) • tiettyä merkkiä vastaa tietty koodi eli bittiyhdistelmä • koodin bittimäärä riippuu esitettävien erilaisten merkkien lukumäärästä: n:llä bitillä voidaan suoraan esittää enintään 2n merkkiä • koodin bittimäärä on perinteisesti sama kaikille merkeille • uusimmissa koodeissa käytetään yleisimmille merkeille lyhyempää esitystä (8 bittiä) kuin harvinaisemmille (16-32 bittiä) A b K Ä p ü Ω ы 1 2 3 4 5 6 7 8 9 0 ! & % [ ] = @ # <> CR LF FF SYN ESC ACK
ASCII-koodi • Perinteinen merkkikoodi on ASCII-koodi (American Standard Code for Information Interchange) eli ITU-aakkosto n:o 5 • 7 bittiä • 128 erilaista merkkiä • 32 ohjausmerkkiä • 10 numeroa • 26 isoa kirjainta • 26 pientä kirjainta • 34 erikoismerkkiä • ei sisällä skandinaavisia eikä muitakaan erikoiskirjaimia • kansallisia versioita olemassa: osa erikoismerkeistä korvattu kansallisilla kirjaimilla, esim. å, Å, ä, Ä, ö, Ö • sellaisenaan jäänyt pois käytöstä, mutta perusta uudemmille merkkikoodeille ASCII
ISO 8859 ISO 8859 -merkkikoodit • 8 bittiä, 256 merkkiä • Nykyään 15 eri versiota • Perusversio ISO 8859-1 eli ISO Latin 1 (ei sisällä €-merkkiä) • Euroversio ISO 8859-15 eli ISO Latin 9 (sisältää €-merkin) • Myös mm. turkkilainen, romanialainen, kyrillinen, kreikkalainen, arabiankielinen, hepreankielinen ja thainkielinen versio • Numerot, kirjaimet ja erikoismerkit koodialueella 010-12710 (0016-7F16) kuten ASCII-koodissa • Ohjauskoodivaraus koodialueelle 12810-15910 (8016-9F16) • Kansallisia kirjaimia ja lisää erikoismerkkejä koodialueella 16010-25510 (A016-FF16) • Käytössä mm. mikrotietokoneissa • Windows-käyttöjärjestelmän koodisivu 1252 on lähes ISO Latin 1 Esittele koodi-taulukot
ISO/IEC 10646 Unicode ISO/IEC 10646 ja Unicode -merkkikoodit • ISO/IEC 10646 (UCS, Universal Character Set) • sisältää valtaosan maailman kielissä käytettävistä merkeistä ja lisäksi suuren määrän muita merkkejä • 16- ja 32-bittiset versiot (UCS-2 ja UCS-4), versiossa 10646:2011 (tulossa voimaan vuonna 2011) 109 448 merkkiä • uusia merkkejä lisätään jatkuvasti • Unicode UTF-koodit (UTF = Unicode Transformation Format) • Unicode-konsortion kehittämä merkkikoodi, nykyinen versio 6.0.0, jossaon 109 449 merkkiä • yhteensopiva ISO/IEC 10646 -koodin kanssa • monipuolisempi kuin ISO/IEC 10646 • keskeiset koodityypit UTF-8, UTF-16 ja UTF-32 • UTF-8 käyttää ASCII-koodin mukaisiin merkkeihin 8 bittiä ja muihin merkkeihin joko 16 tai 32 bittiä • UTF-16 käyttää merkkeihin joko 16 tai 32 bittiä • UTF-32 käyttää merkkeihin aina 32 bittiä
Yhteenveto • Lukuja esitetään digitaalilaitteissa myös BCD-koodattuina kymmenjärjestelmän lukuina • Tärkein BCD-koodi on NBCD-koodi, mutta muitakin koodeja käytetään niiden eri tilanteisiin sopivien ominaisuuksien takia • NBCD-lukujen yhteenlasku tehdään kahdessa vaiheessa NBCD-summaimella • Gray-koodeissa vain yksi bitti muuttuu koodisanasta seuraavaan siirryttäessä • Merkkikoodeilla esitetään kirjaimia, numeroita, erikoismerkkejä, puoligraafisia merkkejä ja ohjausmerkkejä • Keskeisiä merkkikoodeja ovatASCII-koodi, ISO 8859-koodit sekä ISO 10646-koodi ja Unicode