Kódolások
Adatok kódolása
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
Kilo
K
1 000
Kibi
Ki
1 024
Mega
M
1 000 000
Mebi
Me
1 048 576
Giga
G
1 000 000 000
Gibi
Gi
1 073 741 824
Tera
T
1 000 000 000 000
Tebi
Te
1 099 511 627 776
Peta
P
1 000 000 000 000 000
Pebi
Pe
250
Exa
E
1018
Exbi
Ex
260
Adatok kódolása
Bitek rekeszekben, IBM PC óta a 8 bites rekeszméret kváziszabvány (byte). 8 bit = 1 byte (28=256) 1 byte-on 256 különböző érték lehet. De mit jelöl egy érték?
Kódolások - ASCII
60’-as évek: ASCII (American Standard Code for Information Interchange)
Angol ABC-n alapuló kódolás 7 bitet használ (0-127 közötti értékek) 0-31, 127: vezérlőkarakterek
Nem adatot reprezentálnak, hanem az eszközöket vezérlik (új sor, kocsivissza, stb)
32: space 33-126: nyomtatható karakterek
Betűk, számok, írásjelek
ASCII
Nyomtatható karakterek (33-126)
Kódolások – ASCII-kiterjesztett
95 karakter – ez kevés M.o. (?)
ISO 8859-1 (Latin 1)
Több kiterjesztés, 8. bit használatával 0-127 u.a. mint ASCII, a többi (128-255) plusz szimbólumokat jelölhet Több szimbólum, pl. ékezetes betűk, speciális betűk és jelek („ő” és „ű” nincs benne)
ISO 8859-2 (Latin 2)
„ő” és „ű” is benne van, de még mindig hiányzik pár szimbólum a magyar írásjelekből
Kódolások – ASCII kódlapok
Kódlap (Code Page)
Szám – szimbólum hozzárendelés Nyelvi sajátosságokra igazítható Eredeti IBM PC kódlap a 437-es
kiterjesztett ASCII – 8. bit is használt 0-31 vezérlőkaraktereknek is van grafikus jelentése (smiley-k, kártya-szimbólumok, stb: ☺☻♥ ♦ ♣ ♠ • ◘ ○) 128-255 karakterek ékezetes betűket, szöveges üzemmódú ablakok rajzolásához szükséges szimbólumokat tartalmaztak (╠ ═ ╬ ╧ ╨ ╤ ╚ ├ ─ ┼).
Kódolások – Code Page 437
Kódolások – Code Page 850 • Pár rajzolásra való karakter helyére több ékezetes betű jött be
Kódolások – Kódlapok
437 — Eredeti IBM PC kódlap 737 — görög 850 — Többnyelvű (Latin-1) (Nyugat európai nyelvek) 852 — szláv (Latin-2) (Kelet európai nyelvek) 855 — cirill 857 — török 858 — Többnyelvű euro szimbólummal 860 — portugál 861 — izlandi 863 — francia kanadai 865 — északi
Kódlapok – jó-e?
Egyik fajtában írt dokumentumban fizikailag ugyanazok a számok vannak Ha rossz kódlappal nézzük, összevisszaságot is láthatunk, hiszen a különböző értékekhez más-más szimbólum lesz hozzárendelve
Kódolások – EBCDIC
1963-’64 EBCDIC - IBM (Extended Binary Coded Decimal Interchange Code)
ASCII-hez hasonló, 8 bites IBM nagygépeken használják Nem ASCII compatibilis 8 bit 2x4 nibble-re osztva:
Első 4 bit (első nibble): zone, kategória Második 4 bit (második nibble): digit, karakter azonosító
EBCDIC
Kódolások - UNICODE
UNICODE
Több írásrendszer betűit és szimbólumait reprezentálni képes szabvány Célja hogy az eddigi tarka szabványokat leváltsa egységesre 256 szimbólum (8 bit) helyett 16 biten (65535 szimbólum), később 31 biten (>2 milliárd szimbólum) Első 65535 helyen az összes eddigi 8 bites kódlapok nyelvei – BMP (Basic Multilingual Plane)
Kódolások - UNICODE
UNICODE Alsó 128 érték – ASCII Alsó 256 érték – Latin 1 (tehát nincs magyar „ő” és „ű” az alsó 256 értéken) További plusz bitek segítségével az extra karakterek is pontosan megszabottak Karakter – byte 8 bites ASCII esetén egybeesik, hiszen 1 karakter 1 byte-on ábrázolt. Jelentése mégis más:
Karakter: 1 szimbólum/írásjel (UNICODE-ban 31 bit) Byte: 8 bitnyi adat
Reprezentáció továbbra is byte-okban, de hogy milyen logika szerint, azt a karakterkódolás/ábrázolásmód (mapping) adja meg
Kódolások - UNICODE
UNICODE
UTF-8 (Unicode Transformation Format)
Unix rendszerek használják UTF-8: 8 bites átalakítási formátum, 1 szimbólumot 14 byte-on tárol. 1 byte-on az ASCII szimbólumokat, európai ékezetes betűket 2 byte-on, stb… 128 alatti értékek önmaguk 128 feletti értékek egy vagy több 128 feletti értékű byte reprezentál (az első byte utáni byte legnagyobb helyiértékű bitjeiben előforduló első 1-esek mondják meg hány byte-os a karakter, a többi byte „10”-val kezdődik)
UTF-8
UTF-8 byte-os reprezentáció szabálya
UTF-8 előnyök
ASCII kompatibilis Minden szimbólum max. 6 byte-ot foglal (de 4 fölé soha nem megy) Byte-okból jól látszik hogy egy karakternek hány byte-os reprezentációja van
UTF-16
UTF-16 (Unicode Transformation Format)
Windows/Unix rendszerek használják 16 bites átalakítási formátum, 1 szimbólumot 2 vagy 4 byte-on tárol. 2 byte-on a BMP szimbólumait, 4 byte-on az az felettieket.
16 bitbe „beférő” (0x10000-nál kisebb) Unicode kód önmaga (utf-16 v. ucs-2) 16 bitbe nem férő (0x10000 – 0x10FFFF) két részben:
X-0x10000 X maximum: 0xFFFFF 20 biten ábtázolható 10-10 bitet lehet tenni a 2 db 16 bites szám végére Első 6 bit fix: 110110yyyyyyyyyy – 0xD800 – 0xDBFF 110111xxxxxxxxxx – 0xDC00 – 0xDFFF