Bilgisayarlar sayıları kullanır. İnsanlar harfleri ve sembolleri kullanır. Bir köprüye ihtiyacımız var. İşte o köprü ASCII'dir . ASCII, her harfi veya sembolü bir sayıya dönüştürür. Bilgisayar sayıyı depolar. Okuduğumuzda, bilgisayar harfi tekrar gösterir. Birçok dosya ve uygulamada metin bu şekilde çalışır.
Bir bilgisayar elektrikle çalışır. İki durum görür: Açık ve Kapalı. Bu durumlara bit diyoruz. Bir bit, 0 veya 1'dir. Birçok bit bir araya geldiğinde daha büyük sayılar oluşturur. Sekiz bit bir bayt oluşturur. Bitlerle sayabiliriz. Saymayla ise nesneleri isimlendirebiliriz. ASCII, harfleri ve sembolleri isimlendirmek için saymayı kullanır.
Bir bit iki seçenek sunar. İki bit dört seçenek sunar. Matematikte bu fikir \(\;2^n\) olarak gösterilir. \(n=7\) için \(2^7 = 128\) seçenek elde ederiz. \(n=8\) için \(2^8 = 256\) seçenek elde ederiz. ASCII 7 bit kullanır. Bu da 128 adlandırılmış öğe verir. Daha sonra insanlar 256 öğeli 8 bitlik kümeler oluşturdular. Bunlara genişletilmiş ASCII adı verildi.
ASCII, Amerikan Bilgi Değişimi Standart Kodu'nun kısaltmasıdır. 1960'larda ortaya çıkmıştır. İlk yazıcılar, teletipler ve bilgisayarlar için geliştirilmiştir. Her harfe, rakama, boşluğa ve bazı sembollere bir sayı verir. Ayrıca yeni satır gibi eylemlere özel numaralar verir. İlk sürümü 7 bit kullanıyordu, yani 0 ile 127 arasında sayılar içeriyordu.
Dikkat çekici bir şey fark ettiniz mi? Küçük harfler, büyük harf çiftlerinden 32 fazladır. Örneğin, \(\;97 - 65 = 32\) . Yani 'a', 'A'dan 32 fazladır. 'b', 'B'den 32 fazladır ve bu böyle devam eder. Bu kalıp, bazı bilgisayar işlemlerini kolaylaştırır.
Enter tuşuna bastığınızda, bilgisayarınız sisteme bağlı olarak LF, CR veya her ikisini birden gönderebilir. Birçok internet aracı LF kullanır. Bazı eski sistemler CR ve LF'yi birlikte kullanırdı.
Sayıları farklı şekillerde yazabiliriz. Ondalık sayı sistemi , 0'dan 9'a kadar olan rakamları kullanarak normal sayma yöntemimizdir. İkili sayı sisteminde yalnızca 0 ve 1 kullanılır. Onaltılık sayı sisteminde ise 0'dan 9'a ve A'dan F'ye kadar olan rakamlar kullanılır.
'A' için ikili sayı sistemi nasıl 65 yapar? 01000001'deki bitlere bakın. En soldaki bit 128 içindir. Sonra 64, 32, 16, 8, 4, 2, 1 gelir. Sadece 64 ve 1 açıktır. Yani \(01000001_{(2)} = 0\times128 + 1\times64 + 0\times32 + 0\times16 + 0\times8 + 0\times4 + 0\times2 + 1\times1 = 65\) .
Bir tuşa basın. Klavye bilgisayara bir kod gönderir. Sistem bunu bir karakter numarasına dönüştürür. Çoğu tuş için bu sayı ASCII numarasıdır. Uygulama, numarayı belleğe kaydeder. Metni görüntülerken, numarayı arar ve harfi çizer. Kaydettiğinizde, numaralar dosyaya eklenir.
"Hi!" mesajını düşünün. Harfler H, i ve !'dir. ASCII numaraları 72, 105 ve 33'tür. İkili sistemde ise 01001000, 01101001 ve 00100001'dir. Ağ bu bitleri gönderir. Karşı taraf bitleri okur. Sayıları görür. Tekrar H, i ve ! gösterir. Basit metin mesajları işte böyle hareket eder.
İnsanlar daha fazla sembol istiyordu. é, ñ ve ø gibi harfleri istiyorlardı. € gibi para sembolleri istiyorlardı. 7 bitlik kümede yalnızca 128 sembol vardı. Bu yüzden insanlar 8 bit kullanıyordu. 8 bit ile \(2^8 = 256\) sembol elde ederiz. 128'den 255'e kadar olan üst yarı, ekstra harfler ve semboller için kullanılıyordu. Ancak bir sorun vardı. Farklı gruplar bu ekstra harfler için farklı sayılar seçiyordu. Bu seçimlere kod sayfaları denir.
Kod sayfaları farklı olduğundan, aynı sayı başka bir bilgisayarda farklı bir sembol gösterebilir. Bu karışıklığa mojibake adı verilir. Garip karakterler gibi görünür. Dünyanın Unicode'a geçmesinin sebeplerinden biri de budur.
Unicode, birçok dili, matematik sembolünü ve emojiyi gösterebilen büyük bir standarttır. Bir milyondan fazla sembol için alan sunar. Unicode'u depolamanın birçok yolu vardır. Popüler bir yöntem de UTF-8'dir .
Yalnızca ASCII metinlerde, her karakter bir bayt kullanır. Yani "cat" kelimesi 3 bayt kullanır. " Hi mom" ifadesi boşluk dahil 6 karakter içerdiğinden, 6 bayt kullanır. Basit bir matematikle, \(\textrm{ASCII baytları} = \textrm{karakter sayısı}\) .
Bilgisayarlar genellikle dizeleri karakter numaralarına göre sıralar. ASCII sıralaması ise öğeleri belirli bir şekilde gruplandırır.
Bu, basit ASCII değerlerini karşılaştırdığımızda Zoo'nun elmadan önce geldiği anlamına geliyor. Sıralama, kelimelerin sesine göre değil, sayılara göre yapılıyor.
Dikkat edin, ve işareti &'dir. ASCII numarası 38'dir. Artı işareti + 43'tür. Eksi işareti - ise 45'tir.
İnsanlar sadece karakterler kullanarak resim yaparlar. Buna ASCII sanatı denir. İşte ASCII karakterleriyle yapılmış minik bir yüz.
:-) Basit bir gülümseme
(^_^) Dost canlısı yüz
o_O Şaşırmış
Her yüz, iki nokta üst üste, tire ve parantez gibi karakterlerden oluşuyor. Renk veya şekil yok. Sadece metin.
ASCII, teletiplerden ve ilk bilgisayarlardan türedi. 1963'te ilk sürümü üzerinde anlaşmaya varıldı. Birçok farklı makinenin birbiriyle iletişim kurmasına yardımcı oldu. Tek bir ortak kodla, A gibi bir harf her yerde aynı sayıyı ifade ediyordu. Bu da mesaj göndermeyi ve metin yazdırmayı kolaylaştırdı.
ASCII yalnızca 128 öğeye sahiptir. Bu, tüm diller için yeterli değildir. Çince, Hintçe, Arapça veya diğer birçok alfabeyi gösteremez. Emojileri gösteremez. Ayrıca birçok matematik ve müzik sembolünü de gösteremez. Bunlar için Unicode kullanırız. Unicode birçok alfabe ve sembolü gösterebilir. UTF-8 bunları depolamanın bir yoludur. İyi haber şu ki, tüm ASCII metinleri UTF-8 içinde çalışır. Bu nedenle modern sistemler eski ASCII'leri kolayca okuyabilir.
Çoğu uygulama UTF-8 bekler. Ancak bir dosya yalnızca ASCII harfleri ve sembolleri içeriyorsa, UTF-8 altında da aynı görünür. Programcılar bunu tercih eder çünkü işleri basitleştirir. Web sayfaları, API'ler ve birçok araç, ASCII'yi değişiklik yapmadan içeren UTF-8 kullanır.
ASCII 7 bitlik bir kümedir. Bu \(2^7 = 128\) farklı karaktere kadar anlamına gelir. 8 bitlik genişletilmiş bir küme \(2^8 = 256\) öğeye sahiptir. Metniniz yalnızca ASCII karakterleri içeriyorsa ve \(n\) karakter içeriyorsa, \(n\) bayt kullanır. OK gibi küçük bir mesajda \(n = 2\) kullanılır. Bu nedenle, ASCII veya UTF-8 olarak depolandığında 2 bayt kullanır.
Bazı ASCII öğeleri işlem yapar ve yazdırılmaz. Boşluk tuşu boş yazdırır. Ancak LF ve CR imleci hareket ettirir. TAB tuşu atlar. Bir dosyayı özel bir düzenleyicide açtığımızda, LF'yi \n olarak gösterebilir. Bu sembol ASCII'nin bir parçası değildir. Düzenleyicinin satır sonunu size gösterme şeklidir.
İsimleri yazdıran bir etiket makinesi düşünün. İsmi karakter olarak okur. Her karakteri ASCII sayılarına dönüştürür. Bu sayıları hafızasında saklar. Her sayının nasıl çizileceğini araştırarak harfleri yazdırır. LF (10) değerini karşılıyorsa, devamını yazdırmadan önce bir sonraki satıra geçer.
'!' karakterine tekrar bakın. Kodunu üç şekilde yazabiliriz. Ondalık: 33. İkili: 00100001. Onaltılık: 21. Matematiksel olarak, \(\;33_{(10)} = 00100001_{(2)} = 21_{(16)}\) . Her form aynı değere sahiptir. Uygulamalar ihtiyaç duydukları formu seçer. İnsanlar genellikle ondalık sayı sistemini okur. Bilgisayarlar ikili sayı sistemini sever. Onaltılık sistem, insanların ikili sayıları okuması için kısa bir yoldur.
ASCII küçük ve anlaşılırdır. Erken dönemde geliştirildi. Birçok araç ve protokol üzerine inşa edildi. İlk 128 Unicode kodu ASCII ile uyumlu olduğu için, bu plan bugün hala geçerliliğini koruyor. Bu nedenle, çok eski metin dosyalarını yeni bir telefon veya dizüstü bilgisayarda açtığınızda aynı harfleri görebilirsiniz.
"Hello" metnini içeren bir dosya açın. Baytlar, ASCII sayıları olan 72 101 108 108 111'dir. İkili sistemde bunlar 01001000 01100101 01101100 01101100 01101111'dir. Uygulama her sayıyı okur ve ekrana "Hello" çizer. Bir sonraki sayı 10 ise, daha fazla metin çizmeden önce yeni bir satıra geçer. İşte süreç bu kadar basit ve istikrarlı.
10 sayısını düşünün. İkili sistemde bu 00001010'dur. Ondalık sistemde ise ondur. ASCII'de 10, LF (satır sonu) anlamına gelir. Bu, aynı sayının farklı şekillerde nasıl gösterilebileceğini gösterir. Anlamı, sayıyı nasıl kullandığımızdan gelir. Bir karakter kodu olduğunu söylersek, 10 LF anlamına gelir. Sadece elma sayısı olduğunu söylersek, on elma olur. Bağlam önemlidir.
Sun kelimesini bir cihazdan diğerine göndereceğiz. Kodlar 'S' 83, 'u' 117, 'n' 110'dur. İkili sistemde 83, 01010011'dir, 117, 01110101'dir, 110 ise 01101110'dur. Bitler Açık ve Kapalı sinyalleri olarak hareket eder. Diğer cihaz bitleri tekrar sayılara dönüştürür. Daha sonra sayıları harflere dönüştürür. Sun kelimesini gösterir. Bir sonraki kod 32 ise, bu bir boşluktur. Bir sonraki 33 ise, bu '!'dir. Kurallar her seferinde aynı kalır. Paylaşımlı kodun gücü budur.