Bevezetés az Informatikába

Hasonló dokumentumok
Bináris egység: bit (binary unit) bit ~ b; byte ~ B (Gb Gigabit;GB Gigabyte) Gb;GB;Gib;GiB mind más. Elnevezés Jele Értéke Elnevezés Jele Értéke

Bevezetés a számítástechnikába

Informatikai Rendszerek Alapjai

Dr. Oniga István DIGITÁLIS TECHNIKA 2

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

4. Fejezet : Az egész számok (integer) ábrázolása

Assembly programozás: 2. gyakorlat

Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

INFO1 Számok és karakterek

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

Máté: Számítógép architektúrák

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Számítógép architektúrák

Programozott soros szinkron adatátvitel

2. Fejezet : Számrendszerek

1. forduló Az adat, az információ és a hír jelentése és tartalma. A kommunikáció

Aritmetikai utasítások I.

A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

INFORMATIKA MATEMATIKAI ALAPJAI

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Digitális Rendszerek és Számítógép Architektúrák

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

Webdesign II Oldaltervezés 3. Tipográfiai alapismeretek

I+K technológiák. Számrendszerek, kódolás

Negatív alapú számrendszerek

Hatodik gyakorlat. Rendszer, adat, információ

(jegyzet) Bérci Norbert szeptember i óra anyaga A számrendszer alapja és a számjegyek Alaki- és helyiérték...

Harmadik gyakorlat. Számrendszerek

Kedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

Digitális technika VIMIAA02 1. EA

Számrendszerek és az informatika

Kombinációs hálózatok Számok és kódok

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

Fixpontos és lebegőpontos DSP Számrendszerek

Máté: Számítógép architektúrák

Digitális technika VIMIAA01

Digitális technika VIMIAA01

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Számítógép Architektúrák (MIKNB113A)

(jegyzet) Bérci Norbert szeptember 10-i óra anyaga. 1. Számrendszerek A számrendszer alapja és a számjegyek

Bevezetés az informatikába

Feladat: Indítsd el a Jegyzettömböt (vagy Word programot)! Alt + számok a numerikus billentyűzeten!

Multimédia szoftver szabványok

Számítógép Architektúrák (MIKNB113A)

4. Fejezet : Az egész számok (integer) ábrázolása

Analóg és digitális jelek. Az adattárolás mértékegységei. Bit. Bájt. Nagy mennyiségû adatok mérése

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

DIGITÁLIS TECHNIKA I KÓD IRODALOM SZIMBÓLUMKÉSZLET KÓDOLÁS ÉS DEKÓDOLÁS

Jelek és adatok. A jelek csoportosítása:

Digitális technika VIMIAA01

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Előadó. Bevezetés az informatikába. Cél. Ajánlott irodalom. Előismeretek? Felmentés? Dudásné Nagy Marianna. csütörtök Bolyai terem

1. INFORMATIKAI ALAPFOGALMAK HÍRKÖZLÉSI RENDSZER SZÁMRENDSZEREK... 6

Informatika érettségi vizsga

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Számok és karakterek ábrázolása

Számrendszerek. 1. ábra: C soportosítás 2-es számrendszerben. Helyiértékek: A szám leírva:

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

INFO1 Számok és karakterek

Bevezetés az informatikába

Informatika elméleti alapjai. January 17, 2014

5. Fejezet : Lebegőpontos számok

2018, Diszkrét matematika

Programozás alapjai. Wagner György Általános Informatikai Tanszék

Szám- és kódrendszerek

Matematikai alapok. Dr. Iványi Péter

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

Formális nyelvek és automaták

Informatikai Rendszerek Alapjai

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Informatikai rendszerek alapjai (Informatika I.) NGB_SZ003_1

Az Informatika Elméleti Alapjai

Jel, adat, információ

Alapismeretek. Tanmenet

Dr. Wührl Tibor Ph.D. MsC 04 Ea. IP P címzés

5.1.4 Laborgyakorlat: A Windows számológép használata hálózati címeknél

Összeadás BCD számokkal

Információs technológiák 2. Ea: Info-tour-mix. Nélkülözhetetlen alapfogalmak

Digitális rendszerek. Utasításarchitektúra szintje

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Számrendszerek. Bináris, hexadecimális

Shannon és Huffman kód konstrukció tetszőleges. véges test felett

. Dr. Nyéki Lajos 2019

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Algoritmizálás és adatmodellezés tanítása 9. előadás

Az Informatika Elméleti Alapjai

DIGITÁLIS TECHNIKA I

Digitális technika VIMIAA hét

Műveletek lebegőpontos adatokkal

Objektumorientált Programozás I.

1. Fejezet: Számítógép rendszerek. Tipikus számítógép hirdetés

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS

Véges állapotú gépek (FSM) tervezése

DIGITÁLIS TECHNIKA BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

Átírás:

Bevezetés az Informatikába Karakterek bináris ábrázolása Készítette: Perjési András andris@aries.ektf.hu

Alap probléma A számítógép egy bináris rendszerben működő gép Mindent numerikus formátumban ábrázolunk Az emberek számára kényelmetlen az információ ilyen módú értelmezése (az itt ülőkre természetesen ez nem vonatkozik, 0x75 0x67 0x79 0x65*? ) *: értsd 7 bites ASCII karakterábrázolás szerint

Egy ideális világban... A számokat decimálisan ábrázoljuk és decimális számrendszerben értelmezzük A szövegeink betűkből épülnek fel(nem pedig bináris értékekből) Nemzetenként az ábécék sajátos betűket(jeleket...) tartalmazhatnak

Egy digitális világban... A számokat binárisan Fixpontosan, lebegőpontosan(ieee 754) Karaktereket binárisan BCD 6 bit EBCDIC 8 bit ASCII 7 bit UTF-8 8-16-24-32 bit UTF-16 16-32 bit

Decimális számok ábrázolása BCD-vel Binary Coded Decimal IBM szóhasználatában, 6 bites alfanumerikus kódok (64 darab) decimális számjegyek, nagybetűk, speciális jelek) számjegyek esetén felső két bit 00...bennünket valójában ezek érdekelnek...\o/

Decimális számjegyek BCD-n Több kódolási forma is létezik, ezek közül kettő: Natural Binary Coded Decimal (bitsúly: 8-4-2-1) Aiken (bitsúly: 2-4-2-1) Decimális Számjegy Bináris NBCD kód Bináris Aiken kód 0 0000 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 1011 6 0110 1100 7 0111 1101 8 1000 1110 9 1001 1111

BCD ábrázolása Byte-orientáltak vagyunk Kézzel mindig hexadecimálisan írjuk fel Két módszer létezik Zónás(pakolatlan) ábrázolás Pakolt ábrázolás

Zónás ábrázolás Alsó 4 biten mindig a számjegy Felső 4 biten implementáció függő EBCDIC implementáció esetén 1111 vagyis F ASCII implementáció esetén 0011 vagyis 3 Decimális szám: 127 Ábrázolva EBCDIC-vel F1 F2 F7 Ábrázolva ASCII-vel 31 32 37

Pakolt ábrázolás 1 decimális számjegy 4 biten......1 byte-on tároljunk 2 decimális számjegyet... Decimális szám: 127 Ábrázolva pakoltan 01 27...páratlan számjegy esetén a felső nibble-re 0-t írunk

Előjeles BCD-k Előjelek ábrázolásának több módja is van, két közkedvelt BCD kód (természetesen hexadecimálisan) C - pozitív(+) D - negatív(-) Ábrázolva EBCDIC-vel Pakolt F1 F2 C7 12 7C

Hatékonyság 16 biten tárolható szám esetén tisztán binárisban 1111 1111 1111 1111 (2) = NBCD ábrázolásban 65635 (10) 1001 1001 1001 1001 (2) = 9999 (10)

Pro/Contra BCD Pro belső ábrázolás-szöveg(képernyőnnyomtatón) konverzió hatékonyabb egyszerűbb hardware-es szükséges kerekítés, valós rész tárolás Contra tárolás nem túl hatékony(16 biten 0,16%) több aritmetikai művelet megvalósítása bonyolultabb mint tiszta binárison

Összeadás NBCD-ben Összeadás számjegyenként Ha a számjegyek összege 9-nél nagyobb, az eredményhez adnunk kell 6-ot(binárisan: 0110), hogy a következő helyiérték a következő nibble-re essen Amennyiben van további összeadandó helyiérték akkor természetesen az előbbi áthozatot ehhez hozzáadjuk.

Összeadás NBCD-n(Példa) Végezzük el az NBCD-n a következő műveletet: 127+182 Decimális 1 2 7 NBCD 0001 0010 0111 Decimális 1 8 2 NBCD 0001 1000 0010

Összeadás NBCD-n(1.lépés) 0001 0010 0111 + 0001 1000 0010????

Összeadás NBCD-n(2.lépés) 0001 0010 0111 + 0001 1000 0010???? 0111 + 0010 1001

Összeadás NBCD-n(3.lépés) 0001 0010 0111 + 0001 1000 0010???? 0111 + 0010 1001 kisebb mint 9

Összeadás NBCD-n(4.lépés) 0001 0010 0111 + 0001 1000 0010???? 0111 + 0010 1001 Nem nagyobb 9-nél

Összeadás NBCD-n(5.lépés) 0001 0010 0111 + 0001 1000 0010???? 1001

Összeadás NBCD-n(6.lépés) 0001 0010 0111 + 0001 1000 0010???? 1001 0010 + 1000 1010

Összeadás NBCD-n(7.lépés) 0001 0010 0111 + 0001 1000 0010???? 1001 0010 + 1000 1010 nagyobb mint 9

Összeadás NBCD-n(8.lépés) 0001 0010 0111 + 0001 1000 0010???? 1001 0110 1010???? 0010 + 1000 1010 nagyobb mint 9

Összeadás NBCD-n(9.lépés) 0001 0010 0111 + 0001 1000 0010???? 1001 0110 0001 1010 0001 0000 0010 + 1000 1010 nagyobb mint 9

Összeadás NBCD-n(10.lépés) 0001 0010 0111 + 0001 1000 0010???? 0000 1001 0110 0001 1010 0001 0000 0001 + 0001????

Összeadás NBCD-n(11.lépés) 0001 0010 0111 + 0001 1000 0010???? 0000 1001 0110 0001 1010 0001 0000 0001 0001 + 0001????

Összeadás NBCD-n(12.lépés) 0001 0010 0111 + 0001 1000 0010???? 0000 1001 0110 0001 1010 0001 0000 0001 0001 + 0001 0011

Összeadás NBCD-n(13.lépés) 0001 0010 0111 + 0001 1000 0010???? 0000 1001 0110 0001 1010 0001 0000 0001 0001 + 0001 0011 kisebb mint 9

Összeadás NBCD-n(14.lépés) 0001 0010 0111 + 0001 1000 0010???? 0000 1001 0110 0001 1010 0001 0000 0001 0001 + 0001 0011 kisebb mint 9

Összeadás NBCD-n (eredmény) 0001 0010 0111 + 0001 1000 0010 0011 0000 1001 NBCD 3 0 9 Decimális Decimálisan kiszámolva az eredményt láthatjuk hogy az előbbi algoritmus helyes: 127+182=309

Karakterek kódolása A binárisan tárolt numerikus értékekhez karaktert rendelünk Kölcsönös és egyértelmű hozzárendelés, minden karakterhez megállapodás alapján adott kód tartozik. (belső ábrázolás/kód) Fontos szempont: a hordozhatóság (helyi nyelvi jellegzetességek)

Kódolási rendszerek American Standard Code for Information Interchange ASCII Extended ASCII Extended Binary Coded Decimal Interchange Code - EBCDIC Unicode Transformation Format UTF-8, UTF-16

ASCII kódrendszer Amerikai Szabványügyi Hivatal fejleszti korai távírók kódrendszere alapján 1956, Ivan Idelson indítványa a Brit Szabványügyi Hivatalhoz Első alkalmazás: 1963, AT&T TWX távíró rendszerében

ASCII kódrendszer tulajdonságai 7 bites kód A legtöbb rendszer ekkor már byte alapú Sokáig a 8. bit paritás illetve vezérlő bit Latin ábécén alapul és tartalmazza az angol nyelv kis/nagy betűit

ASCII kódtábla csoportjai I. 7 bites kódtábla felépítése helyiérték Decimális bit érték 6. 5. KarakterCsoport 0 0 0-31 Vezérlő karakterek 0 1 32-63 Számjegyek és elválasztó jelek 1 0 64-95 Nagybetűk és különleges jelek 1 1 96-127 Kis betűk és különleges jelek

Extended ASCII A nyelvi jellegzetességek követésére: 8. bit alkalmazása karakterek tárolásához ISO implementálás ISO 8859-1 Latin 1 Western European ISO 8859-2 Latin 2 Eastern European ISO 8859-5 Cyrillic Microsoft implementáció CP-1252

Extended ASCI jellemzői Egy karakter - 1 byte Első 128 karakter szabványos, állandó A második 128 karakter mindig az adott kódtábla által specifikált A helyes értelmezéshez tudnunk kell, hogy a szöveg milyen kódtábla szerint került tárolásra

ASCII jelentősége A fejlesztésben az IBM részt vett, innen a mai PC-k IBM kompatibilitása(kisgépes környezetekben ez terjedt el) Karakterábrázolásban, hálózati kommunikációban(ftp ASCI adatátvitel)

EBCDIC kódrendszer Extended Binary Coded Decimal Interchange Code Kizárólagos IBM fejlesztés(még az ASCII előtt) Először 1963-1964 között IBM System/360 mainframe-en

Történeti vonatkozás Nagygépes környezet 12 soros lyukkártyákon alkalmazzák Zóna rész: első 3 sor Szám rész: további 9 sor

EBCDIC jellemzői 8 bites kódrendszer Nem kompatibilis az ASCII-vel A kódtábla egy standard részre és egy kódlap specifikált részre osztható Hatékonyságra nézve nincs jelentős különbség az ASCII és az EBCDIC között

EBCDIC Latin-1 kódtábla, (vezérlő karakterek nélkül)

EBCDIC Alkalmazása Napjainkban is IBM nagy gépes környezetekben Szövegfájloknál Adatbázisoknál Unicode karakterkészlet megjelenítéshez UTF-EBCDIC (nem terjedt el)

Univerzális kódtábla igénye Az számítógépek elterjedésével egyre több ország, egyre több karakterét kellett megjeleníteni Nem feltétlenül fért el egy nyelv ábécéje a második 128 karakteren A kódtáblák között lehetetlen megteremteni az átjárhatóságot

Unicode szabvány Ipari szabvány mely a különböző nyelvek írott szövegeinek átviteléhez, feldolgozásához, megjelenítéséhez ad módszert. (jelek sorrendje, írásmódja) Jelenleg: Unicode 7.0 2014 Október 08.

Unicode Konzorcium A szabvány fejlesztői támogatói Bárki részese lehet a tagsággal járó díj kifizetése mellett Kalifornia-i székhely Jól ismert konzorciumi tagok:

Unicode karakterek ábrázolása 1 114 112 karakter(kódpont) - Unicode 7.0 Unicode karakterek ábrázolása(kódolás) : UTF-8 8 bites, egy karakter 1-4 byte UTF-16-16 bites, egy karakter 2-4 byte

UTF-8 kódolás Ábrázolás 8 bites kódegységekkel Visszafelé kompatibilitás ASCII Latin-1 Változó hosszúságú kódolás Karakterek belső kódja(kódpontja) UTF-8 kódolással 1-2-3-4 byte-on ábrázolható

Változó hosszúságú kódolás Elméleti ábrázolás legfeljebb 21 biten (Unicode 7.0 szabvány szerint) Az esetek többségében nem férünk el egy byte-on (szám szerint 1 113 856 esetben )

Konverziós táblázat Belső kód 1. byte prefixumok További byteokszáma abc defg 0abc defg 0 abc dexx xxxx 110a bcde 1 abcd xxxx xxxx xxxx 1110 abcd 2 a bcxx xxxx xxxx xxxx xxxx 1111 0abc 3 ab xxxx xxxx xxxx xxxx xxxx xxxx 1111 10ab 4 axx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 1111 110a 5 További byte-ok prefixuma: 10xx xxxx

Konverziós tábla használata I. A Belső kód oszlop használata: A bitkekre illesszük a Unicode karakter bináris kódját (ha szükséges egészítsük ki balról 0-kkal) UTF-8 kód oszlopok használata: Félkövér bitek: szabad bit -ek a Belső kód oszlop bitjeit kell ide írni folytonosan Normál szedésű bitek: rögzített prefixum bitek, a meghatározott bitértékeket tárolja

Változó hosszúságú kód előállítása I. Unicode karakter: Belső kód: U+03D7 Belső kód binárisan: 0000 0011 1101 0111

Illesztés 1. sorra 0000 0011 1101 0111 Belső kód 1. byte prefixumok További byteokszáma abc defg 0abc defg 0 abc dexx xxxx 110a bcde 1 abcd xxxx xxxx xxxx 1110 abcd 2 a bcxx xxxx xxxx xxxx xxxx 1111 0abc 3 ab xxxx xxxx xxxx xxxx xxxx xxxx 1111 10ab 4 axx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 1111 110a 5 További byte-ok prefixuma: 10xx xxxx

Utolsó 7 bit illeszkedik... 0000 0011 1101 0111 Belső kód 1. byte prefixumok További byteokszáma abc defg 0abc defg 0 abc dexx xxxx 110a bcde 1 abcd xxxx xxxx xxxx 1110 abcd 2 a bcxx xxxx xxxx xxxx xxxx 1111 0abc 3 ab xxxx xxxx xxxx xxxx xxxx xxxx 1111 10ab 4 axx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 1111 110a 5 További byte-ok prefixuma: 10xx xxxx

...felső 9 bit viszont eltér 0000 0011 1101 0111 Belső kód 1. byte prefixumok További byteokszáma abc defg 0abc defg 0 abc dexx xxxx 110a bcde 1 abcd xxxx xxxx xxxx 1110 abcd 2 a bcxx xxxx xxxx xxxx xxxx 1111 0abc 3 ab xxxx xxxx xxxx xxxx xxxx xxxx 1111 10ab 4 axx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 1111 110a 5 További byte-ok prefixuma: 10xx xxxx

Illesztés 2. sorra 0000 0011 1101 0111 Belső kód 1. byte prefixumok További byteokszáma abc defg 0abc defg 0 abc dexx xxxx 110a bcde 1 abcd xxxx xxxx xxxx 1110 abcd 2 a bcxx xxxx xxxx xxxx xxxx 1111 0abc 3 ab xxxx xxxx xxxx xxxx xxxx xxxx 1111 10ab 4 axx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 1111 110a 5 További byte-ok prefixuma: 10xx xxxx

Bit illeszkedés 0000 0011 1101 0111 Belső kód 1. byte prefixumok További byteokszáma abc defg 0abc defg 0 abc dexx xxxx 110a bcde 1 abcd xxxx xxxx xxxx 1110 abcd 2 a bcxx xxxx xxxx xxxx xxxx 1111 0abc 3 ab xxxx xxxx xxxx xxxx xxxx xxxx 1111 10ab 4 axx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 1111 110a 5 További byte-ok prefixuma: 10xx xxxx

UTF-8-as kód képzése (első byte) Tárolandó belső kód bitjei (előző oldalon sötét zölddel jelölve) 011 1101 0111 UTF-8-as kód első byte-ja mivel második sorban vagyunk... Bitminta Konkrét első byte 110a bcde 1100 1111

UTF-8-as kód képzése (további byte-ok) Tárolandó belső kód bitjei 011 1101 0111 UTF-8 további bájtok sortól függetlenül... Bitminta Konkrét első byte 10xx xxxx 1001 0111

Változó hosszúságú kód előállítása I. Unicode karakter: Belső kód: U+03D7 Belső kód binárisan: 0000 0011 1101 0111 Belső kód UTF-8-as ábrázolással: 1100 1111 1001 0111 CF 97

UTF-16 kódolás Ábrázolás 16 bites kódegységekkel 1 x 16 bit 0x0000-0xFFFF kódpontig(bmp) 2 x 16 bit - 0x10000-0x10FFFF kódpontig Változó hosszúságú kódolás Karakterek belsőkódja 2-4 byte-on ábrázolható(~1 vagy 2 darab 16 bites egységen) Kódpont több(>=2) bájton...milyen sorrendben értelmezzük a szó byte-jait?

Byte-order ~ Endianess Lilliput-i architektúra vagy Brobdingnag-i architektúra A kérdés pontosabban: Milyen sorrendben tároljuk az adategységeket(avagy felső vagy alsó helyiérték egységekkel kezdjük?)

A nagy végű világ Big Endian szabály: nagy vég az elején legnagyobb byte(most Significant Byte) kerül a legalacsonyabb címre egységen belül a felső helyiértékű byte-okat tároljuk először Hexadecimális számérték: Big Endian tárolás 2 byte-os egységekel: 0A0B0C0D 0A0B 0C0D

A kis végű világ Little Endian szabály: kis vég az elején legkisebb byte(least Significant Byte) kerül a legalacsonyabb címre egységen belül az alsó helyiértékű byte-okat tároljuk először Hexadecimális számérték: Little Endian tárolás 2 byte-os egységekel: 0A0B0C0D 0B0A 0D0C

UTF-16 és endianitás Endianitás jelzése miatt 3 szabvány UTF-16 Byte Order Mark kezdő karaker FE FF (big endian), FF FE (little endian) UTF-16BE(Big Endian) ~ nagy vég az elején UTF-16LE(Little Endian) ~ kicsi vég az elején A következő példák mind UTF-16BE kódolást használnak

UTF-16, 2 byte-os ábrázolás Ha a Unicode kódpont nem nagyobb mint 0xFFFF(65535) akkor az ábrázolás 1 darab 16 bites szóval történik A karakter - hexadecimális - Unicode azonosítója: U+2658. Mivel ez nem nagyobb mint 0xFFFF, így UTF-16-ban is 26 58 vagy 0010 0110 0101 1000 formában reprezentáljuk

UTF-16, 4 byte-os ábrázolás 0xFFFF(65535) értéknél nagyobb Unicode kódpontok 2 darab 16 bites szón Ezek ábrázolásához úgynevezett helyettesítő-párt használunk a négy byte-ot 0xD800-0xDFFF tartomány kettéosztásával tároljuk 1. szó a 0xD800-0xDBFF értéktartományon 2. szó a 0xDC00-0xDFFF értéktartományon

UTF-16 kód előállítás helyettesítő párral (Példa) A CJK(Chinese, Japan, Korean) karakter kódja: U+21341. Ábrázoljuk UTF-16BE kódolással.

UTF-16-os kód előállítás helyettesítő kódpárral I. A kódpont értékből kivonunk 10000 -ot (16) és az eredményt felírjuk binárisan: 21341 (16) -10000 (16) =11341 (16) = 0001 0001 0011 0100 0001 (2)

UTF-16-os kód előállítás helyettesítő kódpárral II. Az eredményt két 10 bites egységre bontjuk 0001 0001 0011 0100 0001 (2) 0001 0001 00 11 0100 0001

UTF-16-os kód előállítás helyettesítő kódpárral III. OR művelet az első 10 bites egység és az első szó helyettesítő kódpártartományának alsóértéke(0xd800) között 0001 0001 00 OR 0xD800 0000 0000 0100 0100 OR 1101 1000 0000 0000 1101 1000 0100 0100

UTF-16-os kód előállítás helyettesítő kódpárral IV. OR művelet az második 10 bites egység és az második szó helyettesítő kódpártartományának alsóértéke(0xdc00) között 0001 0001 00 OR 0xDC00 0000 0011 0100 0001 OR 1101 1100 0000 0000 1101 1111 0100 0001

UTF-16-os kód előállítás helyettesítő kódpárral V. Az utóbbi OR műveletek eredményeként kapott 2 darab 16 bites szót rendre egymás után írva megkapjuk a U+21341 kódpont UTF-16BE-ben ábrázolt kódját: 1101 1000 0100 0100 1101 1111 0100 0001 = D8 44 DF 41

Sok karakter - kevés font készlet probléma Egy adott font nem feltétlenül támogatja az összes Unicode karakter megjelenítését, Mikor ez történik akkor -t szúr be a megfelelő karakter helyére A fontoknak követni kell a Unicode szabvány fejlődését

A Unicode Jóó, ha tudjuk használni Unicode kódpontok adatbázisa pdf formátumban http://www.unicode.org/charts/index.html egyszerűen kereshető formában http://decodeunicode.org/ Unicode karakterek, megjelenítésre alkalmas fontok keresése http://www.fileformat.info/index.htm

Legyünk hát univerzálisak, mert másképp félreérthetőek leszünk... Köszönöm a -t!