Bilgisayar Sayı ve Kod Sistemleri
Bilgisayarınızda bir çok işlem gerçekleştiriyorsunuz ve bu işlemleri gerçekleştirirken alıştığınız dili kullanıyorsunuz. Bu sizin bilgisayar deneyiminizi kolaylaştırıyor. Aslında bilgisayarınız sizin kullandığınız dilden tabi ki anlamıyor. Ancak kullandığınız dili kendi anlayacağı dile çeviriyor ve bu sayede bilgisayar ile iletişiminiz mümkün oluyor. Bu yazıda size bilgisayar sayı ve kod sistemleri hakkında bilgi vermeye çalışacağım.
Bilgisayar Sayı ve Kod Sistemleri
Eminim ki bunu okuyan birisi olarak aklınıza hemen genel bilinen düşünce gelecek. Bilgisayarlar sadece 1 ve 0 ları algılar. Aslında bu tam olarak böyle değil. Bilgisayarların, devrelerden oluşan bir yapı ve içerisinde sadece elektrik sinyallerinin dolaştığını düşünecek olursak, bu devrelerin anlayabileceği 2 şey vardır: elektrik var, elektrik yok.
Bit ve Byte
Bit, depolama ve haberleşmenin en küçük ve en temel ünitesidir. Bildiğiniz tabirdeki 0 ve 1 rakamı aslında bir elektronik komponentin 2 farklı durumunu temsil ediyor. Ve buna ‘bit’ adı veriliyor. Bit’ler değeri 0 veya 1 olabilen ikili sayma sisteminin dijitleridir. 0 durumu elektriğin olmadığını (0 Volt-aslında sıfır değildir ama sıfıra çok yakın bir gerilimdir), 1 ise elektriğin olduğunu (5 Volt). Ham (işlenmemiş) gerçek bilgi parçacağına veri (data) denir.Toplamda 8 bitten oluşan bir bit grubuna byte adı verilir. Veriler byte cinsinden hesaplanır.
İkili Sayı Sistemi (Binary)
Sayıların 2 tabanında yazılmasıyla elde edilen bir sayı sistemidir. Dolayısı ile tüm sayılar 0 ve 1 rakamları kullanılarak ifade edilirler. Bir byte 8 bitten oluştuğu için en fazla 27 değerinde veri taşıyabilir. 10 luk tabanda açıklarsak, 256 sayısına denk gelmektedir. Bilgisayarlar saymaya 0’dan başladığı için ondalık sayı değeri olarak en fazla 255 sayısını tanıyabilir.
Peki sayılar binary koduna nasıl çevriliyor? Örnek olarak 86 sayısını ele alalım:
86 = 0 * 27 + 1 * 26 + 0 * 25+ 1 * 24 + 0 * 23+ 1 * 22 + 1 * 21 + 0 * 20
Peki bu hesaplama neden böyle oldu?
27 den başladık. 86 sayısının içinde 27 değeri yok. O yüzden 0 ile çarptık ve işleme devam ettik.
26 : 86 sayısının içinde bu değer 1 tane var. O yüzden 1 yazdık toplamaya devam ediyoruz. (86-26 ‘dan 22 kaldı.)
25 : İşlemimizde kalan 22 sayısının içinde bu değer yok. O yüzden 0 yazdık ve devam ediyoruz.
24 : 22 sayısının içinde bu değerden 1 tane var. O yüzden 1 yazdık. (22-24 ‘işleminden 6 kaldı.)
23 : İşlemimizde kalan 6 sayısının içinde bu değer yok. O yüzden 0 yazdık ve devam ediyoruz.
22 : 6 sayısının içinde bu değer 1 tane var. O yüzden 1 yazdık. (6-22‘işleminden 2 kaldı.)
21 : İşlemimizde kalan 2 sayısının içinde bu değerden 1 tane var. O yüzden 1 yazdık. (2-21 ‘işleminden 0 kaldı.)
20 : İşlemimizden kalan 0 sayısının içinde bu değer yok. O yüzden 0 yazdık.
Böylelikle binary değerimiz 01010110
Pekala, dedik ki maksimum 255 sayısına kadar yazıyoruz.
Peki ya 256 sayısını binary ile yazmak istersek ne olacak?
O zaman 2 byte yani 16 bit kullanmamız gerekiyor. 1. byte değerimiz maksimum değer olan 256 dan kaç tane olduğunu yazar, 2. byte değerimiz ile toplarız.
00000001 00000000
Yani 256 + 0.
257 yazmak isteseydik: 00000001 00000001 -> yani 256 * (1 * 20 ) + ( 1 * 20 )
258 yazmak isteseydik: 00000001 00000010 -> yani 256 * (1 * 20 ) + ( 1 * 21 )
268 yazmak isteseydik: 00000001 00001100 -> yani 256 * (1 * 20 ) + ( 1 * 23 +1 * 22 )
512 yazmak isteseydik: 00000010 00000000 -> yani 256 * (1 * 21 ) + ( 0 )
513 yazmak isteseydik: 00000010 00000001 -> yani 256 * (1 * 21 )+ ( 1 * 20 )
1024 yazmak isteseydik: 00000010 00000001 -> yani 256 * (1 * 21 )+ ( 1 * 20 )
1025 yazmak isteseydik: 00000100 00000001 -> yani 256 * (1 * 22 )+ ( 1 * 20 )
Bu başa aldığımız 2. byte değerimiz de 128 tane 256 ya kadar değer taşır. Yani maksimum değeri 32767 dir. Bunun da üzerine çıkmamız gerektiğinde maksimum 2147483647 değerini taşıyabilen 4 byte – 32 bit değer kullanmamız gerekirdi.
Bilgisayarların rakamları nasıl bir kodlama sistemiyle tanıdığını biraz anladıysak şimdi de harfleri nasıl tanıdığına bakalım. Öncelikle binary karşılığını bulabilmemiz için ilgili harfin veya sembolün ASCII kodunu bilmemiz gerekir.
ASCII kodu nedir?
ASCII kodu, bilgisayara görsel olarak girdiğimiz karakter, harf veya rakamların, bilgisayar dilindeki temsil edilme şeklidir. Açılımı American Standart Code for Information Interchange (Bilgi Değişimi için Amerika Standart Kodu) şeklindedir.
Yazacağımız harfin ASCII karşılığı olan sayıyı öğrendikten sonra, bu sayıyı da yukarıda öğrendiğimiz şekilde binary koduna çeviriyoruz. Mesela kendi adımı yani Oğuz yazmak istediğim zaman:
Büyük harf O -> 79 ,
Küçük harf ğ -> 167 ,
Küçük harf u -> 117 ,
Küçük harf z -> 122 .
Yani ismimin ASCII karşılığı : 79 167 117 122
Şimdi bu sayıları BINARY koduna çevirelim:
79 -> 01001111 ,
167 -> 10100111 ,
117 -> 01110101 ,
122 -> 01111010 .
Öyleyse BINARY sisteminde Oğuz: 01001111 10100111 01110101 01111010 şeklinde yazılıyor.
Şimdilik bilgisayar sayı ve kod sistemleri hakkında oldukça fikir sahibi olduk. Tabi ki bilgisayar sayı ve kod sistemleri bunlarla sınırlı değil ancak şimdilik en temel düzeyde bilgi sahibiyiz.
Sevgiler.