← Tüm araçlar

ASCII Tablosu

Onluk, onaltılık ve ikili kodlarıyla tam ASCII tablosu referansı; kontrol ile yazdırılabilir karakterler ve ASCII'nin Unicode ile UTF-8 ile ilişkisi.
DecHexOctCharİsim

ASCII tablosu: 128 sayı metnin temeli nasıl oldu

ASCII, American Standard Code for Information Interchange (Amerikan Standart Bilgi Alışveriş Kodu) kısaltmasıdır ve bilgisayarlara bir harfin ne olduğu konusunda uzlaşmayı öğreten kodlamadır. 1963'te yayımlanıp 1960'lı yıllar boyunca geliştirilmiş ve İngilizce metnin tüm temel karakterlerini, rakamları ve bir dizi kontrol sinyalini bir makinenin depolayıp iletebileceği sayılarla eşleştirmiştir. Büyük A tuşuna bastığınızda bilgisayarınız bir şekil depolamaz; 65 sayısını depolar. ASCII, bu sayının gittiği her yerde A anlamına gelmesini sağlayan arama tablosudur.

Standart, ünlü biçimde derlidir. ASCII 7 bitlik bir koddur; yani her karakter yedi ikili basamağa sığar ve tüm repertuvar tam olarak 2'nin 7'nci kuvveti, yani 0'dan 127'ye kadar numaralandırılmış 128 farklı kod noktasına yayılır. Bu ekonomi kasıtlıydı. İlk teletype'lar ve modemler yavaş ve pahalıydı; bu yüzden her bit önemliydi. Yedi bit, büyük ve küçük Latin harflerini, on rakamı, yaygın noktalama işaretlerini ve cihazların senkronize kalmasını sağlayan sinyal karakterlerini kapsayacak kadar yeterliydi; üstelik pek çok sistemin hata denetimi için kullandığı bir bit de artıyordu.

Camgöbeği ve altın ışıkla koyu indigo renkte sıralı karakter hücrelerinden oluşan soyut parlak ızgara
ASCII, her karakteri 128 numaralı hücreden oluşan sabit ve sıralı bir ızgaraya yerleştirir.

İki yarı: kontrol karakterleri ve yazdırılabilir karakterler

Tablo iki bölgeye ayrılır. 0'dan 31'e kadar olan kodlar artı 127 kodu (DEL), kontrol karakterleridir. Bunlar ekranda bir glif basmaz. Bunun yerine bir cihaza bir şey yapmasını söyler: kod 9 yatay sekme, kod 10 yeni satıra geçen satır besleme, kod 13 satır başı ve kod 7 bir zamanlar terminali sesli olarak çınlatan zil sesidir. Toplamda otuz üç sinyal kodu mevcuttur; bunların çoğu artık tarihsel birer meraktır; ancak satır besleme, satır başı ve sekme günümüzde metin dosyalarının biçimlendirilme biçiminde vazgeçilmez olmaya devam etmektedir.

32'den 126'ya kadar olan kodlar, toplamda doksan beş adet olan yazdırılabilir karakterlerdir. Kod 32, hiçbir şey göstermese de imleci ilerlettiği için yazdırılabilir sayılan boşluktur. Ardından noktalama işaretleri ve semboller, 48'den 57'ye kadar olan kodlarda 0'dan 9'a kadar rakamlar, 65'ten 90'a kadar olan kodlarda A'dan Z'ye büyük harfler ve 97'den 122'ye kadar olan kodlarda a'dan z'ye küçük harfler gelir. Bu düzenden temiz bir özellik ortaya çıkar: aynı harfin küçük ve büyük sürümleri tam olarak 32 fark eder; bu nedenle tek bir biti çevirmek büyük/küçük harf dönüşümünü gerçekleştirir. Bu düzenlilikler tesadüf değildir; sıralama ve büyük/küçük harf dönüştürmenin basit aritmetikle yapılabilmesi için tasarlanmışlardır.

Ondalık, onaltılık ve ikili: bir sayının üç görünümü

Her ASCII kodu yalnızca bir sayıdır ve onu üç şekilde yazılmış olarak görebilirsiniz. Ondalık, gündelik taban-10 biçimidir; yani A 65'tir. Onaltılık, taban 16, programcıların tercih ettiği biçimdir çünkü baytlarla hizalanır: A 0x41'dir ve yazdırılabilir aralık 0x20'den 0x7E'ye kadar uzanır. İkili, taban 2, donanımın gerçekte depoladığı biçimdir; A yedi biti üzerinde 1000001'dir. Aynı karakter, üç notasyon; bellek dökümlerini veya ağ trafiğini okurken bunlar arasında kolayca geçiş yapabilmek temel bir beceridir. Bu dönüşümlerle sık çalışıyorsanız speedor.net'teki daha geniş referans tabloları eşlemeleri tek tıkla sunmaktadır.

Lacivert bir zemin üzerinde parlak glif yuvalarına akan ikili ve onaltılık ışık akışları
İkili ve onaltılık, aynı ASCII kod noktasını tanımlayan farklı tabanlardır.

ASCII'nin hâlâ önem taşıdığı yerler

ASCII'yi tarih bölümüne göndermek hata olur. Kodla ilgilenen herkesin günlük çalışmasında yaşamaktadır. Programlama dilleri, bayt düzeyinde dize değişmezlerini, kaynak dosyaları ve protokol anahtar sözcüklerini ASCII olarak ele alır. HTTP başlıkları, SMTP ve pek çok yapılandırma biçimi gibi ağ protokolleri, insan tarafından okunabilir kalmak amacıyla ASCII ile tanımlanmıştır. Bir dize bozulmuş göründüğünde geliştiriciler, serseri bir kontrol karakterini veya yanlış satır sonunu tespit etmek için ham baytları ASCII tablosuna göre okumak üzere onaltılık görüntüleyiciye başvurur. URL kodlaması, Base64 ve kaçış dizileri hepsi ASCII değerleri üzerine inşa edilmiştir. Kodlama hatalarını ayıklayan biri için geliştirici araçlarının yanında hızlı bir başvuru kaynağı, gizemli bir baytı açık bir yanıta dönüştürür.

ASCII'den Unicode'a ve UTF-8'e

ASCII İngilizceyi mükemmel biçimde işledi ve başka neredeyse hiçbir şeyi. 128 karakterlik bir tavan, aksanlı harfleri, Kiril alfabesini, Çinceyi, Arapçayı veya emojiyi barındıramaz. Unicode buna her yazı sistemindeki her karaktere, şu anda yüz binden fazlasına, kod noktası adı verilen benzersiz bir sayı atayarak yanıt verdi. Kritik olarak Unicode, karakter kataloğudur; depolama biçimi değildir; bu nedenle bu kod noktalarını bayta dönüştürmek için bir kodlamaya ihtiyaç duyar.

UTF-8 bu kodlamadır ve ASCII'nin gerçekte hiç kaybolmamasının nedenidir. UTF-8 karakter başına bir ila dört bayt kullanır ve tüm ASCII aralığı olan 0 ila 127 arasındaki kod noktalarını düz ASCII ile özdeş tek bir baytta depolayacak şekilde tasarlanmıştır. Bu, UTF-8'i tamamen geriye dönük uyumlu hale getirir: geçerli herhangi bir ASCII dosyası zaten geçerli bir UTF-8 dosyasıdır. 127'nin üzerindeki karakterler ek bayt kullanır. Bu zarif uyumluluk, UTF-8'in artık web'in büyük çoğunluğuna güç vermesinin önemli nedenlerinden biridir. Kısacası ASCII özgün 128 karakterlik çekirdektir, Unicode onu içeren evrensel katalogdur ve UTF-8 ASCII metnini bayt bazında değiştirmeden ikisini de taşıyan kodlamadır.

Sık sorulan sorular

ASCII tablosunda kaç karakter var?

Standart ASCII, 0'dan 127'ye kadar numaralandırılmış 128 karakter tanımlar. Bunların 95'i boşluk dahil yazdırılabilir karakterlerdir; 33'ü ise glif basmak yerine cihazlara sinyal gönderen kontrol karakterleridir.

Kontrol karakterleri ile yazdırılabilir karakterler arasındaki fark nedir?

0'dan 31'e kadar artı 127 kodlu kontrol karakterleri, satır besleme veya sekme gibi bir cihaza bir şey yapmasını söyler ve görünür glif üretmez. 32'den 126'ya kadar kodlu yazdırılabilir karakterler ise ekranda gerçekten gördüğünüz harfler, rakamlar, noktalama işaretleri ve boşluktur.

ASCII neden 7 bitlik bir koddur?

Yedi bit tam olarak 128 kombinasyon sağlar; bu, İngilizce harfleri, rakamları, noktalama işaretlerini ve kontrol sinyallerini kapsayacak kadar yeterliydi ve yavaş erken donanımda bant genişliğinden tasarruf edilmesini sağlıyordu. Bir bayttaki sekizinci bit çoğunlukla eşlik hata denetimi için ayrılırdı.

A harfinin ASCII kodu nedir?

Büyük A ondalık 65, onaltılık 0x41 ve ikili 1000001'dir. Küçük a ise ondalık 97'dir; bu tam olarak 32 daha yüksektir; büyük/küçük harf dönüştürmenin basit aritmetikle gerçekleşmesini sağlayan yerleşik bir kalıptır.

ASCII ile Unicode aynı şey midir?

Hayır. ASCII 128 karakteri kapsar; Unicode ise her yazı sisteminden yüz binden fazla karakteri kataloglar. ASCII, Unicode'un etkin olarak ilk 128 kod noktasıdır; dolayısıyla daha büyük standardın küçük bir alt kümesidir.

UTF-8'in ASCII ile ilişkisi nedir?

UTF-8, 0 ila 127 arasındaki kod noktalarını ASCII ile özdeş tek bir baytta depolayan bir Unicode kodlamasıdır. Bu, her ASCII dosyasının geçerli bir UTF-8 dosyası olmasını sağlar; bu nedenle UTF-8 geriye dönük uyumludur ve modern web'e egemendir.