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
BCD 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
?
1 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ä NBCD NBCD-koodit
Numero Koodi
0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001
NBCD-lukujen yhteenlasku
1 1 1 1 1 0000
3 0011 4 0100 8 1000 + 5 + 0101 + 8 + 1000 + 9 + 1001
9 1001 13 1101 17 1 0001
+ 0110 + 0110
9 1001 3 0011 7 0111 Esimerkki: Laske yhteen NBCD-luvut A = 0011 0100 1000 (= 34810) ja B = 0101 1000 1001 (= 58910) Σ Lisä Lasketaan yhteen numero kerrallaan
Otetaan huomioon numerosta toiseen siirtyvä muistinumero
Tehdään kahdessa vaiheessa
ensin summataan koodit kuten binaariluvut
jos summa on enintään 910 (10012), se on sellaisenaan oikea
jos summa on yli 910 tai syntyy muistinumero, summaan lisätään korjauksena luku 610 (01102)
BCD- (NBCD-) -summain
Lisä Σ CO CI 0 3 P 0 3 Q 0 3 Σ Σ CO CI 0 3 P 0 3 Q 0 3 Σ & & 1 0 Cout Cin P0 P1 P2 P3 Q0 Q1 Q2 Q3 S2 S1 S0 S3 Σ Binaarinen yhteenlasku ensimmäisellä summaimella
Muistinumero Cout, jos binaarisumma > 910
Korjaus tarvittaessa lisäämällä summaan 01102 = 610 toisella summaimella
BCD BCD BCD A = ai · wi i Lisä NBCD- (8421-) -koodi, 2421-koodi ja 84(-2)(-1)-koodi ovat painotettuja koodeja (weighted code)
koodisanan arvo A voidaan laskea kaavasta
ai ovat koodisanan bitit ja wi painot
paino on yleensä positiivinen, mutta voi olla myös negatiivinen
Excess-3-koodi ei ole painotettu koodi
2421-koodi, 84(-2)(-1)-koodi ja Excess-3-koodi ovat itsekomplementoivia koodeja: koodisanan 9:n komplementti saadaan invertoimalla bitit
Gray-koodit 1
1 1 1 0 Binaarikoodi 1 0 1 0 Gray-koodi Anturit oikein Anturit sivussa Anturit oikein Anturit sivussa GRAY Virhe! 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-koodit 2
?
2 GRAY 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 2. Lisätään
bitti 1. Peilataan Koodisanojen määrä ja pituus valittavissa
Koodisanojen määrää lisätään peilaamalla
Koodisanojen määrä voi olla mikä tahansa parillinen luku
Merkkikoodit
A b K Ä p ü Ω ы 1 2 3 4 5 6 7 8 9 0 ! & % [ ] = @ # <> CR LF FF SYN ESC ACK 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ä)
ASCII-koodi
ASCII 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
ISO 8859 -merkkikoodit
ISO
8859 Esittele
koodi-taulukot 8 bittiä, 256 merkkiä
Noin 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. kyrillinen, kreikkalainen, arabiankielinen ja hepreankielinen 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
ISO/IEC 10646 ja Unicode -merkkikoodit
ISO/IEC 10646
Unicode 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 ovat ASCII-koodi, ISO 8859-koodit sekä ISO 10646-koodi ja Unicode
Comments