← Összes eszköz

ASCII Táblázat

Teljes ASCII táblázat referencia decimális, hex és bináris kódokkal, vezérlő és nyomtatható karakterekkel, és hogy kapcsolódik az ASCII a Unicode-hoz és UTF-8-hoz.
DecHexOctCharNév

Az ASCII-táblázat: hogyan lett 128 számból a szöveg alapja

Az ASCII, azaz az American Standard Code for Information Interchange rövidítése, az a kódolás, amely megtanította a számítógépeket megegyezni abban, mi is egy betű. 1963-ban jelent meg, és a hatvanas években csiszolódott tovább, és az angol szöveg minden alapvető karakterét, a számjegyeket, valamint néhány vezérlőjelet olyan számokra képez le, amelyeket egy gép tárolni és továbbítani tud. Amikor lenyomjuk a nagy A billentyűt, a számítógép nem egy formát tárol, hanem a 65-ös számot. Az ASCII az a keresőtáblázat, amely miatt ez a szám mindenhol A-t jelent, ahová csak eljut.

A szabvány híresen kompakt. Az ASCII 7 bites kód, ami azt jelenti, hogy minden karakter hét bináris számjegybe fér el, és a teljes készlet pontosan 2 a 7. hatványon, azaz 128 különálló, 0-tól 127-ig számozott kódpontból áll. Ez a takarékosság szándékos volt. A korai távgépírók és modemek lassúak és drágák voltak, ezért minden bit számított. Hét bit elég volt a nagy- és kisbetűs latin betűk, a tíz számjegy, a gyakori írásjelek és az eszközöket szinkronban tartó jelzőkarakterek lefedésére, egy fennmaradó bittel, amelyet sok rendszer hibaellenőrzésre használt.

Absztrakt, izzó rácsba rendezett karaktercellák sötét indigó alapon, cián és arany fénnyel
Az ASCII minden karaktert egy rögzített, rendezett, 128 számozott cellából álló rácsba rendez.

Két fél: vezérlőkarakterek és nyomtatható karakterek

A táblázat két részre oszlik tisztán. A 0-tól 31-ig terjedő kódok, valamint a 127-es kód (DEL) a vezérlőkarakterek. Ezek nem nyomtatnak jelet a képernyőre. Ehelyett arra utasítanak egy eszközt, hogy tegyen valamit: a 9-es kód egy vízszintes tabulátor, a 10-es kód a soremelés, amely új sorba lép, a 13-as a kocsi vissza (carriage return), a 7-es kód pedig a csengő, amely régen hallható hangot adott a terminálon. Összesen harminchárom ilyen jelzőkód létezik, és bár közülük sok mára történelmi érdekesség, a soremelés, a kocsi vissza és a tabulátor ma is nélkülözhetetlen a szövegfájlok formázásához.

A 32-től 126-ig terjedő kódok a nyomtatható karakterek, összesen kilencvenöt darab. A 32-es kód a szóköz, amely azért számít nyomtathatónak, mert előrébb mozgatja a kurzort, még ha semmit nem is jelenít meg. Innentől jönnek az írásjelek és szimbólumok, a 48-tól 57-ig terjedő kódokon a 0-tól 9-ig számjegyek, a 65-től 90-ig a nagybetűk A-tól Z-ig, a 97-től 122-ig pedig a kisbetűk a-tól z-ig. Ebből az elrendezésből egy szép tulajdonság adódik: ugyanannak a betűnek a kis- és nagybetűs változata pontosan 32-vel tér el egymástól, ezért egyetlen bit átbillentése átváltja a betűméretet. Ezek a szabályszerűségek nem véletlenek, hanem szándékosan úgy tervezték őket, hogy a rendezés és a kis-nagybetű váltás egyszerű aritmetikával elvégezhető legyen.

Decimális, hexadecimális és bináris: egy szám három nézete

Minden ASCII-kód egyszerűen egy szám, és háromféleképpen írjuk fel. A decimális a mindennapi, tízes számrendszerű forma, tehát az A egyenlő 65-tel. A hexadecimális, azaz tizenhatos számrendszer az a forma, amelyhez a programozók gyakran nyúlnak, mert jól illeszkedik a bájtokhoz: az A itt 0x41, a nyomtatható tartomány pedig 0x20-tól 0x7E-ig terjed. A bináris, azaz kettes számrendszer az, amit a hardver ténylegesen tárol, tehát az A hét bitjén 1000001. Ugyanaz a karakter, három jelölésmód, és az, hogy magabiztosan váltunk közöttük, alapvető készség, amikor memóriakivonatokat vagy hálózati forgalmat olvasunk. Ha gyakran dolgozik ezekkel az átváltásokkal, a speedor.net bővebb referencia-táblázatai egy kattintásra tartják a leképezéseket.

Bináris és hexadecimális fény áramlik izzó jelrekeszekbe egy sötétkék mezőn
A bináris és a hexadecimális egyszerűen két különböző számrendszer, amely ugyanazt az ASCII-kódpontot írja le.

Hol számít még mindig az ASCII

Tévedés lenne az ASCII-t a történelemhez sorolni. Ott van minden nap munkájában bárkinél, aki kódot ír. A programozási nyelvek a szövegliterálokat, a forrásfájlokat és a protokoll-kulcsszavakat bájtszinten ASCII-ként kezelik. A hálózati protokollok, mint a HTTP-fejlécek, az SMTP és sok konfigurációs formátum ASCII-ben vannak definiálva, hogy ember számára olvashatók maradjanak. Amikor egy karakterlánc sérültnek tűnik, a fejlesztők egy hexanézetet nyitnak meg, és a nyers bájtokat az ASCII-táblázathoz igazítva keresik a bekóborlott vezérlőkaraktert vagy a hibás sorvéget. Az URL-kódolás, a Base64 és az escape-szekvenciák mind ASCII-értékekre épülnek. Aki kódolási hibákat vadászik, annak egy gyors referencia a fejlesztői eszközök mellett egy rejtélyes bájtból nyilvánvaló választ csinál.

Az ASCII-tól a Unicode-ig és az UTF-8-ig

Az ASCII kiválóan kezelte az angolt, és szinte semmi mást. A 128 karakteres plafon nem fér el ékezetes betűkkel, cirill, kínai, arab írással vagy emojikkal. A Unicode erre válaszul minden karakterhez egyedi számot, úgynevezett kódpontot rendelt minden létező írásrendszerben, mára jóval több mint százezret. Lényeges, hogy a Unicode karakterek katalógusa, nem tárolási formátum, ezért szüksége van egy kódolásra, amely a kódpontokat bájtokká alakítja.

Az UTF-8 ez a kódolás, és ez az oka annak, hogy az ASCII sosem tűnt el igazán. Az UTF-8 karakterenként egy-négy bájtot használ, és úgy tervezték, hogy a 0-tól 127-ig terjedő kódpontok, vagyis a teljes ASCII-tartomány, egyetlen bájton tárolódjanak, pontosan úgy, mint a sima ASCII-ban. Ez teszi az UTF-8-at tökéletesen visszafelé kompatibilissé: minden érvényes ASCII-fájl egyben érvényes UTF-8-fájl is. A 127 fölötti karakterek további bájtokat használnak. Ez az elegáns kompatibilitás az egyik fő oka annak, hogy az UTF-8 ma a web túlnyomó többségét hajtja. Röviden: az ASCII az eredeti 128 karakteres mag, a Unicode az univerzális katalógus, amely magában foglalja, az UTF-8 pedig a kódolás, amely mindkettőt hordozza, miközben az ASCII-szöveget bájtról bájtra változatlanul hagyja.

Gyakran ismételt kérdések

Hány karakter van az ASCII-táblázatban?

A szabványos ASCII 128 karaktert definiál, 0-tól 127-ig számozva. Ebből 95 a nyomtatható karakter, beleértve a szóközt is, 33 pedig vezérlőkarakter, amely eszközöknek jelez, ahelyett hogy jelet nyomtatna.

Mi a különbség a vezérlő- és a nyomtatható karakterek között?

A vezérlőkarakterek, a 0-tól 31-ig terjedő kódok plusz a 127-es, arra utasítanak egy eszközt, hogy tegyen valamit, például soremelést vagy tabulátort, és nem hoznak létre látható jelet. A nyomtatható karakterek, a 32-től 126-ig terjedő kódok, azok a betűk, számjegyek, írásjelek és a szóköz, amelyeket ténylegesen látunk a képernyőn.

Miért 7 bites kód az ASCII?

Hét bit pontosan 128 kombinációt ad, ami elég volt az angol betűk, számjegyek, írásjelek és vezérlőjelek lefedésére, miközben sávszélességet takarított meg a lassú korai hardveren. A bájt nyolcadik bitjét gyakran paritásos hibaellenőrzésre tartották fenn.

Mi az A betű ASCII-kódja?

A nagybetűs A decimálisan 65, hexadecimálisan 0x41, binárisan 1000001. A kisbetűs a decimálisan 97, ami pontosan 32-vel több, egy beépített mintázat, amely lehetővé teszi, hogy a kis-nagybetű váltás egyszerű aritmetikával történjen.

Az ASCII ugyanaz, mint a Unicode?

Nem. Az ASCII 128 karaktert fed le, míg a Unicode több mint százezret katalogizál minden írásrendszerben. Az ASCII valójában a Unicode első 128 kódpontja, tehát a nagyobb szabvány kis részhalmaza.

Hogyan kapcsolódik az UTF-8 az ASCII-hoz?

Az UTF-8 a Unicode egyik kódolása, amely a 0-tól 127-ig terjedő kódpontokat egyetlen bájton tárolja, pontosan úgy, mint az ASCII. Emiatt minden ASCII-fájl érvényes UTF-8-fájl is, ezért visszafelé kompatibilis az UTF-8, és uralja a mai webet.