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 2 50 Exa E 10 18 Exbi Ex 2 60
Adatok kódolása Bitek rekeszekben, IBM PC óta a 8 bites rekeszméret kváziszabvány (byte). 8 bit = 1 byte (2 8 =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. (?) 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 ISO 8859-1 (Latin 1) 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 1-4 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