← Kaikki työkalut

ASCII-taulukko

Täydellinen ASCII-taulukko desimaali-, heksadesimaali- ja binäärikoodeilla, ohjaus- ja tulostettavat merkit sekä ASCII:n suhde Unicodeen ja UTF-8:aan.
DecHexOctCharNimi

ASCII-taulukko: kuinka 128 numerosta tuli tekstin perusta

ASCII, lyhenne sanoista American Standard Code for Information Interchange, on koodaus, joka opetti tietokoneet sopimaan siitä, mikä kirjain on. Julkaistu vuonna 1963 ja hiottu 1960-luvun aikana, se kuvaa englanninkielisen tekstin jokaisen perusmerkin, numerot ja kourallisen ohjaussignaaleja numeroiksi, jotka kone voi tallentaa ja lähettää. Kun painat isoa A-kirjainta, tietokoneesi ei tallenna muotoa, se tallentaa numeron 65. ASCII on hakutaulukko, joka saa tuon numeron tarkoittamaan A:ta kaikkialla, minne se kulkeutuu.

Standardi on tunnetusti tiivis. ASCII on 7-bittinen koodi, mikä tarkoittaa, että jokainen merkki mahtuu seitsemään binäärinumeroon ja koko merkistö kattaa täsmälleen 2 potenssiin 7, eli 128 erillistä koodipistettä numeroituna 0–127. Tämä säästäväisyys oli tarkoituksellista. Varhaiset teleprintterit ja modeemit olivat hitaita ja kalliita, joten jokainen bitti oli tärkeä. Seitsemän bittiä riitti kattamaan isot ja pienet latinalaiset kirjaimet, kymmenen numeroa, yleisen välimerkistön ja synkronointia ylläpitävät ohjausmerkit, ja yksi bitti jäi käyttämättä, minkä monet järjestelmät hyödynsivät virheentarkistukseen.

Abstrakti hehkuva ruudukko järjestetyistä merkkisoluista tummalla indigolla syaanin ja kullan valossa
ASCII järjestää jokaisen merkin kiinteään, numeroituun 128 solun ruudukkoon.

Kaksi puoliskoa: ohjausmerkit ja tulostettavat merkit

Taulukko jakautuu siististi kahteen alueeseen. Koodit 0–31 sekä koodi 127 (DEL) ovat ohjausmerkkejä. Ne eivät tulosta näytölle mitään kuvaketta. Sen sijaan ne käskevät laitetta tekemään jotain: koodi 9 on vaakasarkain, koodi 10 on rivinvaihto, joka siirtää uudelle riville, koodi 13 on rivinpalautus, ja koodi 7 on merkkiääni, joka sai terminaalin aikanaan pitämään kuultavan äänen. Näitä signalointikoodeja on kaikkiaan kolmekymmentäkolme, ja vaikka moni niistä on nykyään historiallinen kuriositeetti, rivinvaihto, rivinpalautus ja sarkain ovat yhä olennaisia tekstitiedostojen muotoilussa tänäkin päivänä.

Koodit 32–126 ovat tulostettavia merkkejä, yhdeksänkymmentäviisi kappaletta yhteensä. Koodi 32 on välilyönti, joka lasketaan tulostettavaksi, koska se siirtää kohdistinta, vaikka se ei näytä mitään. Siitä eteenpäin tulevat välimerkit ja symbolit, numerot 0–9 koodeissa 48–57, isot kirjaimet A–Z koodeissa 65–90, ja pienet kirjaimet a–z koodeissa 97–122. Tästä asettelusta seuraa siisti ominaisuus: saman kirjaimen pieni ja iso versio eroavat täsmälleen 32:lla, minkä vuoksi yhden bitin kääntäminen vaihtaa kirjainkoon. Nämä säännönmukaisuudet eivät ole sattumia – ne on suunniteltu niin, että lajittelu ja kirjainkoon muunnos voidaan tehdä yksinkertaisella aritmetiikalla.

Desimaali, heksadesimaali ja binääri: kolme näkökulmaa samaan numeroon

Jokainen ASCII-koodi on vain numero, ja näet sen kirjoitettuna kolmella tavalla. Desimaali on arkinen kymmenjärjestelmän muoto, joten A on 65. Heksadesimaali, kuusitoistajärjestelmä, on muoto, johon ohjelmoijat turvautuvat, koska se sopii tavuihin: A on 0x41, ja tulostettava alue kulkee väliltä 0x20–0x7E. Binääri, kaksijärjestelmä, on muoto, jota laitteisto todella tallentaa, joten A on 1000001 seitsemässä bitissään. Sama merkki, kolme merkintätapaa, ja niiden välillä liikkuminen sujuvasti on keskeinen taito, kun luet muistidumppeja tai verkkoliikennettä. Jos työskentelet näiden muunnosten parissa usein, laajempi viitetaulukoiden valikoima speedor.netissä pitää kartoitukset yhden klikkauksen päässä.

Binääri- ja heksadesimaalivalovirtoja virtaamassa hehkuviin merkkipaikkoihin laivastonsinisellä pohjalla
Binääri ja heksadesimaali ovat vain eri lukujärjestelmiä, jotka kuvaavat samaa ASCII-koodipistettä.

Missä ASCII on yhä tärkeä

Olisi virhe niputtaa ASCII historian alle. Se elää jokaisen koodia koskettavan henkilön arkityössä. Ohjelmointikielet käsittelevät merkkijonoja, lähdetiedostoja ja protokolla-avainsanoja ASCII:na tavutasolla. Verkkoprotokollat, kuten HTTP-otsakkeet, SMTP ja monet asetusmuodot, on määritelty ASCII:na, jotta ne pysyvät ihmisluettavina. Kun merkkijono näyttää vioittuneelta, kehittäjät turvautuvat heksanäyttäjään ja lukevat raakoja tavuja ASCII-taulukkoa vasten löytääkseen häirikkö-ohjausmerkin tai väärän rivinvaihdon. URL-koodaus, Base64 ja escape-merkkijonot rakentuvat kaikki ASCII-arvojen varaan. Kaikille, jotka virheenkorjaavat koodausongelmia, pikaviite kehittäjätyökalujesi vieressä muuttaa mystisen tavun ilmiselväksi vastaukseksi.

ASCII:sta Unicodeen ja UTF-8:aan

ASCII hoiti englannin kauniisti ja lähes ei mitään muuta. 128 merkin katto ei riitä aksenttikirjaimille, kyrillisille, kiinalle, arabialle tai emojeille. Unicode vastasi tähän antamalla jokaiselle merkille jokaisessa kirjoitusjärjestelmässä yksilöllisen numeron, koodipisteen, ja niitä on nyt reilusti yli sata tuhatta. Ratkaisevasti Unicode on merkkiluettelo, ei tallennusmuoto, joten se tarvitsee koodauksen muuntaakseen nuo koodipisteet tavuiksi.

UTF-8 on tuo koodaus, ja se on syy siihen, miksi ASCII ei koskaan oikeasti kadonnut. UTF-8 käyttää yhdestä neljään tavua merkkiä kohden, ja se suunniteltiin niin, että koodipisteet 0–127, koko ASCII-alue, tallennetaan yhteen tavuun, joka on identtinen tavallisen ASCII:n kanssa. Tämä tekee UTF-8:sta täysin taaksepäin yhteensopivan: mikä tahansa kelvollinen ASCII-tiedosto on jo kelvollinen UTF-8-tiedosto. Merkit yli 127:n käyttävät lisätavuja. Tämä elegantti yhteensopivuus on suuri syy siihen, miksi UTF-8 pyörittää nykyään valtaosaa verkosta. Lyhyesti: ASCII on alkuperäinen 128 merkin ydin, Unicode on universaali luettelo, joka sisältää sen, ja UTF-8 on koodaus, joka kuljettaa molempia pitäen ASCII-tekstin tavu tavulta muuttumattomana.

Usein kysytyt kysymykset

Kuinka monta merkkiä ASCII-taulukossa on?

Standardi ASCII määrittelee 128 merkkiä, numeroituna 0–127. Näistä 95 on tulostettavia merkkejä, mukaan lukien välilyönti, ja 33 on ohjausmerkkejä, jotka signaloivat laitteille sen sijaan, että tulostaisivat kuvakkeen.

Mikä ero on ohjausmerkeillä ja tulostettavilla merkeillä?

Ohjausmerkit, koodit 0–31 sekä 127, käskevät laitetta tekemään jotain, kuten rivinvaihdon tai sarkaimen, eivätkä tuota näkyvää kuvaketta. Tulostettavat merkit, koodit 32–126, ovat kirjaimet, numerot, välimerkit ja välilyönti, jotka näet oikeasti näytöllä.

Miksi ASCII on 7-bittinen koodi?

Seitsemän bittiä antaa täsmälleen 128 yhdistelmää, mikä riitti kattamaan englannin kirjaimet, numerot, välimerkit ja ohjaussignaalit säästäen samalla kaistaa hitailla varhaisilla laitteilla. Tavun kahdeksas bitti oli usein varattu pariteettivirheentarkistukseen.

Mikä on ASCII-koodi kirjaimelle A?

Iso A on desimaalina 65, heksadesimaalina 0x41 ja binäärinä 1000001. Pieni a on desimaalina 97, mikä on täsmälleen 32 enemmän – sisäänrakennettu kaava, joka mahdollistaa kirjainkoon muunnoksen yksinkertaisella aritmetiikalla.

Onko ASCII sama kuin Unicode?

Ei. ASCII kattaa 128 merkkiä, kun taas Unicode luetteloi yli sata tuhatta merkkiä jokaisesta kirjoitusjärjestelmästä. ASCII on käytännössä Unicoden ensimmäiset 128 koodipistettä, joten se on pieni osajoukko laajemmasta standardista.

Miten UTF-8 liittyy ASCII:iin?

UTF-8 on Unicoden koodaus, joka tallentaa koodipisteet 0–127 yhteen tavuun, joka on identtinen ASCII:n kanssa. Tämä tekee jokaisesta ASCII-tiedostosta kelvollisen UTF-8-tiedoston, minkä vuoksi UTF-8 on taaksepäin yhteensopiva ja hallitsee nykyaikaista verkkoa.