Metinden Binary Koda Dönüştürücü
Karakterlerin arkasındaki ham ikili bit dizilimlerini incele.
Büyük A harfini ikili tabana çevirdiğinde düzenli bir sekiz bitlik dizi elde edersin: 01000001. Aynı dönüşümü bir emojiye uyguladığında ise sonuç tam dört kat daha uzundur. Çünkü UTF-8 standardı, dünyanın tüm yazı sistemlerini ASCII tablosunun temelindeki yedi bite sığdıramaz.
Metinden ikili koda: bir karakter ve sekiz bit mantığı
Büyük A harfinin ASCII tablosundaki onluk değeri 65 olarak belirlenmiştir. İkili gösterimde bu değer tam olarak 01000001 dizilimine karşılık gelir. Sağdan sola ilerlediğinde basamak değerleri 1, 2, 4, 8, 16, 32, 64 ve 128 olur; burada 64 ile 1 toplamı 65 sonucunu verir. Bilgisayarda saklanan düz metinler, temelde her karakter için art arda sıralanmış sekiz bitlik bu gruplardan oluşur.
Küçük a harfi ise 97 değerine sahiptir ve ikili karşılığı 01100001 şeklindedir. Bu dizilim A ile tamamen aynı kalıptadır; tek farkı 32 değerindeki bitin aktif olmasıdır. Büyük ve küçük harf çiftleri arasındaki 32 basamaklık sabit aralığın teknik sebebi bu tek bite dayanır.
ASCII ve UTF-8 ikili kodlama farkları
UTF-8 standardı, ilk 128 karakteri ASCII ile bayt bayt tamamen aynı olacak şekilde tasarlanmıştır. Bu karakterler tek bir bayt tutar ve en baştaki bit her zaman 0 değerini taşır. Bu uyum sayesinde salt İngilizce metinler her iki formatta da birebir aynı ikili dizilimi verir.
Değer 127 barajını aştığında UTF-8 çok baytlı düzene geçer. Özel bit desenleri kullanılır: 110 ile başlayan ilk bayt karakterin iki bayt olduğunu, 1110 üç bayt olduğunu, 11110 ise dört bayt olduğunu işaret eder. İlk baytı izleyen her devam baytı mutlaka 10 ile başlar; sistemler bir karakterin başlangıcı ile devamını bu sayede ayırt eder.
Çok baytlı karakterlerde binary çözünürlüğü
Örnek olarak Unicode kod noktası 233 olan é harfini ele alalım. Tek bir bayta sığmadığı için UTF-8 bunu iki bayt halinde kodlar: 11000011 10101001. Bu dizilim onaltılık sistemde C3 A9 olarak ifade edilir. Baştaki 110 iki baytlık diziyi açar, arkasından gelen 10 deseni ise devam baytını gösterir.
Bir emoji ise tablonun çok daha ilerisinde yer alır. Genellikle UTF-8 sınırının izin verdiği tüm dört baytı kaplar ve en baştaki baytı 11110 ile başlar. Bayt sayımı yaparken bir emojinin normal bir harfe göre neden kat kat daha ağır bastığının temel yanıtı buradadır.
Metni ikili koda dönüştürme adımları
- Dönüştürmek istediğin metni ya da karakterleri giriş kutusuna yapıştır.
- Dönüştürme butonuna tıkla ve güvenlik kontrolü istenirse doğrulamayı tamamla.
- Sunucudan dönen sekiz bitlik ikili grupları incele veya sonucu kopyala.
Karakter dönüşümünde dikkat edilecek noktalar
- ASCII standardı 127 üzerindeki kodları içermediğinden, aksanlı harfler veya emojiler tek baytlık tabloda karşılık bulamaz.
- Çok baytlı karakterleri UTF-8 yapısını tanımadan tek tek okuyan sistemler, dizilimi anlamsız parçalara bölebilir.
- Yanlış kodlama adımlarından geçirilen metinlerin bozuk karakterlere veya soru işaretlerine dönüşmesinin teknik nedeni bu bayt ayrışmalarıdır.
Metin ve ikili kod dönüştürme soruları
Tek bir karakter kaç bitten meydana gelir?
Temel bir ASCII karakteri tek bayt, yani sekiz bit kullanır. ASCII sınırının dışındaki bir UTF-8 karakteri ise ait olduğu Unicode kümesine göre iki, üç veya dört bayt yer kaplar; bu da 16, 24 veya 32 bite karşılık gelir.
Büyük A harfinin ikili karşılığı neden 01000001 şeklindedir?
A harfi 1963 yılındaki özgün ASCII standardında 65 onluk kodunu almıştır. İkili tabanda 1, 2, 4, 8, 16, 32, 64 ve 128 basamak değerleri üzerinden 64 artı 1 toplandığında 01000001 elde edilir.
Metni ikili koda çevirirken veri kaybı yaşanır mı?
Kullanılan karakter kodlaması baştan sona tutarlı kaldığı sürece herhangi bir veri kaybı meydana gelmez. İkili biçim, verinin zaten saklandığı bayt değerlerinin farklı bir yazımından ibarettir.
Bazı dönüşümler 7 bit verirken diğerleri neden 8 bit verir?
İlk ASCII standardı 128 farklı değeri kodlamak için yalnızca yedi bite ihtiyaç duymuştu. Ancak modern sistemler verileri sekiz bitlik baytlar halinde tutar; bu sebeple karakterler başına 0 eklenerek sekiz bite tamamlanır.
Oluşan ikili kodları yeniden orijinal metne dönüştürmek mümkün mü?
Evet, ikili dizi sekizerli gruplara ayrılıp onluk tabana çevrilerek ve doğru karakter tablosu kullanılarak orijinal metin yeniden elde edilebilir.