ASCII

A Wikipédiából, a szabad enciklopédiából

Az ASCII egy mozaikszó: az American Standard Code for Information Interchange kezdőbetűiből ~ 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 a 0..127 előjel nélküli egész számokra képez le. ASCII-kódolást alkalmaznak a text-editorok (például a Jegyzettömb) is.

Az eredeti ASCII jelkészlet

Rendeltetése[szerkesztés | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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. Az 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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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ő.

Bináris Decimális Hexa Jel
0010 0000 32 20 szóköz (␠)
0010 0001 33 21 !
0010 0010 34 22 "
0010 0011 35 23 #
0010 0100 36 24 $
0010 0101 37 25 %
0010 0110 38 26 &
0010 0111 39 27 '
0010 1000 40 28 (
0010 1001 41 29 )
0010 1010 42 2A *
0010 1011 43 2B +
0010 1100 44 2C ,
0010 1101 45 2D -
0010 1110 46 2E .
0010 1111 47 2F /
0011 0000 48 30 0
0011 0001 49 31 1
0011 0010 50 32 2
0011 0011 51 33 3
0011 0100 52 34 4
0011 0101 53 35 5
0011 0110 54 36 6
0011 0111 55 37 7
0011 1000 56 38 8
0011 1001 57 39 9
0011 1010 58 3A :
0011 1011 59 3B ;
0011 1100 60 3C <
0011 1101 61 3D =
0011 1110 62 3E >
0011 1111 63 3F ?
 
Bináris Decimális Hexa Jel
0100 0000 64 40 @
0100 0001 65 41 A
0100 0010 66 42 B
0100 0011 67 43 C
0100 0100 68 44 D
0100 0101 69 45 E
0100 0110 70 46 F
0100 0111 71 47 G
0100 1000 72 48 H
0100 1001 73 49 I
0100 1010 74 4A J
0100 1011 75 4B K
0100 1100 76 4C L
0100 1101 77 4D M
0100 1110 78 4E N
0100 1111 79 4F O
0101 0000 80 50 P
0101 0001 81 51 Q
0101 0010 82 52 R
0101 0011 83 53 S
0101 0100 84 54 T
0101 0101 85 55 U
0101 0110 86 56 V
0101 0111 87 57 W
0101 1000 88 58 X
0101 1001 89 59 Y
0101 1010 90 5A Z
0101 1011 91 5B [
0101 1100 92 5C \
0101 1101 93 5D ]
0101 1110 94 5E ^
0101 1111 95 5F _
 
Bináris Decimális Hexa Jel
0110 0000 96 60 `
0110 0001 97 61 a
0110 0010 98 62 b
0110 0011 99 63 c
0110 0100 100 64 d
0110 0101 101 65 e
0110 0110 102 66 f
0110 0111 103 67 g
0110 1000 104 68 h
0110 1001 105 69 i
0110 1010 106 6A j
0110 1011 107 6B k
0110 1100 108 6C l
0110 1101 109 6D m
0110 1110 110 6E n
0110 1111 111 6F o
0111 0000 112 70 p
0111 0001 113 71 q
0111 0010 114 72 r
0111 0011 115 73 s
0111 0100 116 74 t
0111 0101 117 75 u
0111 0110 118 76 v
0111 0111 119 77 w
0111 1000 120 78 x
0111 1001 121 79 y
0111 1010 122 7A z
0111 1011 123 7B {
0111 1100 124 7C |
0111 1101 125 7D }
0111 1110 126 7E ~
Kibővített ASCII-jelkészlet (437-es kódlap, IBM PC)

Kibővített jelkészlet[szerkesztés | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

  1. http://www.interfacebus.com/ASCII_Table.html ASCII Code Table
  2. http://www.atariarchives.org/cgp/Ch02_Sec04.php THE CHARACTER GENERATOR ROM
  3. http://web.archive.org/web/20050307204242/http://eclecticsatyr.hostultra.com/speccs.htm Sinclair Spectrum+ 48K Character Set
  4. 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.
  5. 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.
  6. http://www.inf.unideb.hu/~jvegh/public/edu/ASM386/AoAHLA/html/ch04s04.html 4.4. Karakterek
  7. http://www.muszeroldal.hu/assistance/ASCII.html A kiterjesztett ASCII kódrendszer

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]

Commons
A Wikimédia Commons tartalmaz ASCII témájú médiaállományokat.

További információk[szerkesztés | forrásszöveg szerkesztése]