Hoşgeldin Misafir

İkili Sistemle Sayı ve Harflerin Temsili: Bilgisayar Bilimleri

xS0N3R

23 Ağu 2020
5,429 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Bilgisayarlar Sayısal Verileri Nasıl Depolar ve Gösterir?


12pzmsy.png


Bilgisayarlar tüm verileri ikili sistem, yani yalnızca 1 ve 0 kullanarak temsil eder. Bu değerler, transistörlerin açma-kapama durumlarıyla ilişkilidir ve Boole operatörü sayesinde doğru (1) ve yanlış (0) gibi iki temel değeri ifade ederler. Ancak yalnızca iki durumla daha büyük bilgileri temsil edebilmek için matematikten faydalanılır. Tıpkı ondalık sistemde olduğu gibi ikili sistemde de basamaklar kullanılır ve her basamak, bir öncekinden iki kat daha büyüktür.

Ondalık sistemde her basamak 10 katına göre sıralanırken, ikili sistemde bu oran 2’dir. Örneğin, 263 sayısı ondalık sistemde 2 yüzlük, 6 onluk ve 3 birlikten oluşurken, ikili sistemde “101” sayısı 1 dörtlük, 0 ikilik ve 1 birlikten oluşur. Bu sayı ondalıkta 5 eder. Daha büyük ikili sayılar da benzer şekilde çözülür. Örneğin “10110111” sayısı 128 + 32 + 16 + 4 + 2 + 1 = 183 eder.

İkili sistemde toplama da tıpkı ondalıkta olduğu gibi taşımalı yapılır. Örneğin 183 ve 19’u toplarken, ikili karşılıkları toplanarak sonuç 202 elde edilir. Bu işlem sırasında oluşan taşıma değerleri ikili sistemin kurallarına uygun biçimde uygulanır.

Bu 1 ve 0'lara bit adı verilir. 8 bitlik bir yapı 256 farklı değeri temsil edebilir; bu nedenle 8 bitlik gruplara "bayt" denir. 1 bayt 8 bittir. 1 kilobayt yaklaşık olarak 1000 bayt (ya da teknik olarak 1024 bayt), 1 megabayt bir milyon bayt, 1 gigabayt bir milyar bayt ve 1 terabayt ise bir trilyon bayttır. Bu birimler veri miktarlarını ölçmekte kullanılır.

Bilgisayarların çalıştığı bit sayısı genellikle 32 ya da 64’tür. 32 bitlik sistemler yaklaşık 4,3 milyara kadar olan sayıları temsil edebilirken, 64 bitlik sistemlerde bu değer yaklaşık 9,2 kentilyona çıkar. Bu, çok daha büyük veri aralıklarının işlenebilmesini sağlar.


Pozitif ve negatif sayıların temsili için genellikle ilk bit işaret biti olarak kullanılır. 1 negatif, 0 pozitif sayıyı belirtir. Geri kalan bitler ise sayının kendisini oluşturur. Bu yöntem sayesinde pozitif ve negatif sayılar aynı yapı içinde temsil edilebilir.
Kod:
1×128 + 0×64 + 1×32 + 1×16 + 0×8 + 1×4 + 1×2 + 1×1 = 183
Binary Gösterimler


rp8b6iv.png


Bilgisayarlar ayrıca tam sayı olmayan, yani ondalıklı sayılarla da çalışmak zorundadır. Bu tür sayılar "kayan noktalı" sayılar olarak bilinir. En yaygın kullanılan gösterim IEEE 754 standardıdır. Bu yapıda ilk bit işaret için, sonraki 8 bit üs (exponent), kalan 23 bit ise anlamlı sayı (mantissa) için kullanılır.

Metinlerin temsili için de sayılar kullanılır. Harfleri sayılara dönüştürmenin en yaygın yöntemlerinden biri ASCII kodlamasıdır. ASCII, 7 bitlik bir sistemle 128 karakteri temsil eder. Bu sistem harfler, sayılar ve sembolleri içerir. Örneğin, ‘A’ harfi 65, ‘a’ harfi 97 sayısıyla temsil edilir.

Ancak ASCII yalnızca İngilizce karakterler içindir. Diğer dillerin karakterlerini desteklemek için genişletilmiş ASCII sistemleri geliştirildi ve bu sistemlerde 8 bit kullanılarak 256 karakter kodlanabildi. Fakat bu da birçok dil için yetersizdi.

Bu sorunu çözmek için Unicode geliştirilmiştir. Unicode, tüm dillerdeki karakterleri temsil edebilecek kadar büyük bir sistemdir. 16 bitlik alan kullanarak bir milyondan fazla karakter için yer ayırır ve bu sayede dünya üzerindeki hemen her yazı sistemi, sembol ve hatta emojiler bile temsil edilebilir.


Tüm bu veriler, yani sayılar, harfler, semboller, sesler ve görüntüler; bilgisayarda yalnızca 1’ler ve 0’ların uzun dizileri olarak saklanır ve işlenir. Bugün kullandığımız her yazılım, her web sayfası, her dijital medya; en temelinde bu ikili sayıların düzenli yapılarından oluşur.
qdr55tk.jpg

32-bit kayan noktalı sayı formatı, bilgisayar biliminde ondalıklı sayıları hassas ve verimli bir şekilde temsil etmek için kullanılan en yaygın biçimlerden biridir. IEEE 754 standardına göre tanımlanan bu format, toplamda 32 bitten oluşur ve üç ana bileşene ayrılır: işaret biti, üstel (exponent) kısım ve önemsiz basamaklar olarak da adlandırılan mantissa ya da diğer adıyla significand. Bu yapının temel amacı, çok küçük ya da çok büyük sayıların dijital ortamda anlamlı bir doğrulukla temsil edilmesini sağlamaktır.

Öncelikle, 32-bit’lik bir kayan noktalı sayıdaki ilk bit olan işaret biti, sayının pozitif ya da negatif olduğunu belirtir. Eğer bu bit 0 ise sayı pozitiftir, 1 ise negatiftir. Görseldeki örnekte işaret biti 0’dır, bu da sayının pozitif olduğunu gösterir.

İkinci bölümde yer alan ve 8 bitten oluşan üstel kısım (exponent), sayının hangi büyüklükte olduğunu belirler. Ancak bu değer, doğrudan değil; “bias” adı verilen bir sapma değeriyle birlikte kullanılır. IEEE 754 standardına göre, bu sapma değeri 127’dir. Yani, eksponansiyel kısımda yazan ikili sayıdan 127 çıkarılarak gerçek üs değeri elde edilir. Görselde exponent kısmı 10001000 yani 136’dır.

Son olarak 23 bitlik significand kısmı, yani mantissa kısmı gelir. Bu kısım sayının ondalık doğruluğunu belirler. Ancak burada önemli bir detay vardır: IEEE 754 standardı, normalleştirilmiş sayılar için bu mantissanın başında her zaman bir “1” olduğunu varsayar ve bu 1 saklanmaz. Bu nedenle, temsil edilen gerçek sayı 1. ile başlayarak 23 bitlik bu dizinin devamıyla yazılır. Örneğin görseldeki significand kısmı 0011100011100110011010 şeklindedir. Bu durumda sayı şu şekilde yazılır:
1.0011100011100110011010

Sonuç olarak, bu tür bir gösterim, sınırlı bit sayısıyla oldukça geniş ve hassas bir sayı aralığını temsil etmeye olanak tanır. Bu da 32-bit kayan noktalı sayı formatını bilimsel hesaplamalar, grafik işleme ve makine öğrenmesi gibi birçok alanda vazgeçilmez kılar.