ASCII
Az ASCII egy mozaikszó: az American Standard Code for Information Interchange kezdőbetűiből (jelentése kb.: szabványos amerikai kód információcserére). A kód jelkészlete az angol abc betűit, számokat, írásjeleket és vezérlő kódokat tartalmazza.[1] Az ASCII jelkészlet 128 különböző szövegkaraktert 0..127 előjel nélküli egész számokra képez le. ASCII-kódolást alkalmaznak a szövegszerkesztő programok (például a Jegyzettömb) is.
Rendeltetése
[szerkesztés]Az informatikai eszközök az emberi kommunikációra használatos betűket digitális formában tudják csak tárolni és megjeleníteni. Például egy számítógép az összes digitálisan megjeleníthető karaktert (a kis- és nagybetűket, írásjeleket, valamint az egyéb speciális jeleket is) számok formájában tudja csak tárolni és egymástól megkülönböztetni. Egy számítógép mindent bináris számokként ábrázol, így a karaktereket szintén bináris értékekként ábrázolják.
Lényeges, hogy a karakterek numerikus értékekké való leképezése egységesen történjen: Ha a 65-ös helyen álló ASCII kódot elküldik egy eszköznek (számítógép perifériának vagy egy másik számítógépnek), akkor a fogadó eszköznek ezt a kapott jelet minden esetben A
karakternek kell értelmeznie, máskülönben a kommunikáció nem lehetne egységes, így lehetetlenné válna szövegek tárolása, kinyomtatása vagy átvitele egy másik gépre. A korabeli karakteres (nem grafikus) kijelzők vezérlőegységei egy adott szimbólum megjelenítésére a saját memóriájukat (EPROM-ba égetett karaktergenerátorukat) használták.[2]
Az ASCII-kódoláson kívül léteznek más kódolások is, például az EBCDIC, sőt a különböző számítógép-architektúrák eltérő kódolást használnak.[3][4]
Története
[szerkesztés]A kódrendszert az 1960-as években dolgozták ki és szabványosították az Egyesült Államokban. Alkalmazásának célja a telexgépeken (távgépírón) és sornyomtatókon való felhasználás volt. A szöveget egy villamos írógéphez vagy margarétafejes nyomtatóhoz hasonló írógépbe gépelték, mely vagy közvetlenül továbbította közönséges telefonhálózaton keresztül a fogadó állomásnak a binárisan kódolt üzenetet vagy offline üzemmódban lyukszalagot nyomtattak segítségével és később automatikus üzemmódban küldték el. A nem nyomtatható karakterek a sornyomtató működéséhez igazodtak: ilyen a tabulátor és a kocsi-vissza, valamint a soremelés karakter is. A bájt nyolc bitjéből egy kihasználatlan maradt: ez volt a paritás bit, amelyből következtetni lehetett az átvitel zavarmentességére. Első továbbfejlesztési iránya az volt, hogy belekerüljenek a leggyakoribb nyugat-európai nyelvek ékezetes karakterei; ennek eredménye az ISO 8859-1 kódolás, más néven a Latin-1. A Unicode az ASCII jelkészlet kiterjesztése, amely hét bit helyett 16 bitet használ a karakterek ábrázolására. Ez 65 536 különböző jel használatát engedi meg a jelkészletben, ezáltal lehetővé teszi, hogy a világ különböző nyelveinek legtöbb szimbólumát egyetlen egységes jelkészletbe foglaljuk.
Felépítése
[szerkesztés]A 7 bites ASCII jelkészlet négy, egyenként 32 karakterből álló csoportra oszlik, amelyek a következők:
- Vezérlőkódok: az első 32 karakter (0 és 31 közé eső) különböző nyomtató és képernyő vezérlési műveleteket végeznek és nem jelenítenek meg szimbólumot. A 0 és 31 közé eső ASCII kódok speciális, nem-nyomtatódó vezérlő kódok. Például a 8. helyen lévő visszalépés
BS
(backspace) egy karakterrel balra lépteti a kurzort vagy a nyomtatófejet.[5] - Írásjelek és számjegyek. A táblázat 3. és 4. sora (írásjelek a szóközzel kezdődően és a számok).
- Nagybetűk: Mivel csak 26 különböző angol betű van, a fennmaradó hat kód különböző speciális jeleket tartalmaz.
- Kisbetűk: Az utolsó csoport a kisbetűknek van fenntartva. A fennmaradó hat kódból öt különleges jel és a 127. helyen lévő törlés jele:
DEL
. A nagy- és a (nekik megfelelő) kisbetűk között éppen 32 hely (karakter) távolság van, így egy adott nagybetű ASCII-helyértékét 32-vel növelve a neki megfelelő kisbetűt adja vissza és viszont. Bináris formában viszont csak az 5. biten térnek el a nagy- és a kisbetűk. A megfelelő bitek átállításával nagyon gyors függvények készíthetőek kisbetű-nagybetű konverzióra.[6]
Vezérlőkarakterek
[szerkesztés]Bináris | Decimális | Hexa | Rövidítés | Eredeti név | Név/jelentés |
---|---|---|---|---|---|
0000 0000 | 0 | 00 | NUL | Null character | Lezáró nulla, például a memóriában tárolt karakterláncok végén használatos |
0000 0001 | 1 | 01 | SOH | Start of Header | Fej(léc) kezdete |
0000 0010 | 2 | 02 | STX | Start of Text | Szöveg kezdete |
0000 0011 | 3 | 03 | ETX | End of Text | Szöveg vége |
0000 0100 | 4 | 04 | EOT | End of Transmission | Adatátvitel vége |
0000 0101 | 5 | 05 | ENQ | Enquiry | Vizsgálat |
0000 0110 | 6 | 06 | ACK | Acknowledgment | Visszaigazolás |
0000 0111 | 7 | 07 | BEL | Bell | Csengetés |
0000 1000 | 8 | 08 | BS | Backspace | Visszalépés (kurzor balra mozog). Esetleg törlés is |
0000 1001 | 9 | 09 | HT | Horizontal Tab | Vízszintes tabulátor |
0000 1010 | 10 | 0A | LF | Line feed | Új sor |
0000 1011 | 11 | 0B | VT | Vertical Tab | Függőleges tabulátor |
0000 1100 | 12 | 0C | FF | Form feed | Lapdobás (új oldal) |
0000 1101 | 13 | 0D | CR | Carriage return | Kocsi vissza, a kurzor a sor elejére megy (de marad a sorban!) |
0000 1110 | 14 | 0E | SO | Shift Out | Karakterkészlet váltása |
0000 1111 | 15 | 0F | SI | Shift In | Karakterkészlet visszaállítása |
0001 0000 | 16 | 10 | DLE | Data Link Escape | Nyers adat következik |
0001 0001 | 17 | 11 | DC1 | Device Control 1 | Eszközvezérlés 1 – gyakran XON (adás engedélyezése) |
0001 0010 | 18 | 12 | DC2 | Device Control 2 | Eszközvezérlés 2 |
0001 0011 | 19 | 13 | DC3 | Device Control 3 (often XOFF) | Eszközvezérlés 3 – gyakran XOFF (adás szüneteltetése) |
0001 0100 | 20 | 14 | DC4 | Device Control 4 | Eszközvezérlés 4 |
0001 0101 | 21 | 15 | NAK | Negative Acknowledgement | Negatív visszaigazolás |
0001 0110 | 22 | 16 | SYN | Synchronous Idle | Szinkron üresjárat |
0001 0111 | 23 | 17 | ETB | End of Trans. Block | Adatátviteli blokk vége |
0001 1000 | 24 | 18 | CAN | Cancel | Mégsem, visszavonás |
0001 1001 | 25 | 19 | EM | End of Medium | Adathordozó vége |
0001 1010 | 26 | 1A | SUB | Substitute | Helyettesítő karakter |
0001 1011 | 27 | 1B | ESC | Escape | Feloldójel |
0001 1100 | 28 | 1C | FS | File Separator | Állományelválasztó |
0001 1101 | 29 | 1D | GS | Group Separator | Csoportelválasztó |
0001 1110 | 30 | 1E | RS | Record Separator | Rekordelválasztó |
0001 1111 | 31 | 1F | US | Unit Separator | Egységelválasztó |
0111 1111 | 127 | 7F | DEL | Delete | Törlés |
A többi karakterhely
[szerkesztés]Az írásjeleket és a latin ábécé betűit tartalmazza. Szokás még nyomtatható karakterek néven is emlegetni, mivel a 127-es helyen lévő karakter kivételével valamennyi nyomtatható illetve képernyőn megjeleníthető.
|
|
|
Kibővített jelkészlet
[szerkesztés]Nyolc bit segítségével 256-féle különböző állapot (és ennek megfelelő karakter) tárolható és különböztethető meg, így kézenfekvő volt az ASCII-jelkészlet bővítése.[7] Az IBM PC elterjedésével először a 437-es kódlap (USA) szerinti bővítést használták, amely ékezetes betűket, matematikai jeleket és táblázatrajzoló szimbólumokat tartalmazott. Mivel az ASCII-jelkészletben csak az alsó 127 helyen lévő karakterek kódolása kötött, számos más kibővített ASCII-kód jelent meg a különböző nyelvek támogatására.
Jegyzetek
[szerkesztés]- ↑ http://www.interfacebus.com/ASCII_Table.html ASCII Code Table
- ↑ http://www.atariarchives.org/cgp/Ch02_Sec04.php THE CHARACTER GENERATOR ROM
- ↑ https://web.archive.org/web/20050307204242/http://eclecticsatyr.hostultra.com/speccs.htm Sinclair Spectrum+ 48K Character Set
- ↑ Különböző számítógép-architektúrák között a fájlok átvitele nemcsak az eltérő technikai megoldások (interfészek megléte/hiánya és a fájlok eltérő formátuma) miatt körülményes, hanem azért is, mert a karakterek leképzése más szisztéma szerint történik.
- ↑ Nyomtatófej visszaléptetése az előző karakter dupla nyomtatása miatt (bold) vagy pedig speciális, a kódban nem lévő szimbólum elkészítése céljából történik. Utóbbi esetben két betű egymásra ütésével valósítható meg egy új karakter nyomtatás közbeni összerakása.
- ↑ http://www.inf.unideb.hu/~jvegh/public/edu/ASM386/AoAHLA/html/ch04s04.html Archiválva 2016. február 26-i dátummal a Wayback Machine-ben 4.4. Karakterek
- ↑ http://www.muszeroldal.hu/assistance/ASCII.html A kiterjesztett ASCII kódrendszer