Programlama veya Bilgisayar Bilimleri konusunda uzman olmasanız bile, muhtemelen bilgisayarların çok sınırlı bir kelime dağarcığına sahip olduğunu biliyorsunuzdur. Dünyadaki her bilgisayarın anladığı alfabe ikili kod sistemidir (binary code). Görünüşte 1 ve 0 rakamlarından oluşan bu ikili kod sistemi nasıl çalışır?

Bu makalemizde sizlerle bu basit 1 ve 0’ların, teknoloji dolu dünyamızı nasıl etkilediğine dair bazı bilgiler paylaşacağım. 1 ve 0 rakamlarından oluşan bu İkili Kod Sistemi, bilgisayarınızda zaman olup bitenlerin omurgasını oluştururlar. Bu nedenle, ikili kodun ne olduğunu ve nasıl çalıştığını temel olarak anlamaya çalışmak, bilgisayarınızın da nasıl çalıştığını öğrenmenize yardımcı olur.

Eğer yazılım ve programlama alanında yeniyseniz ve programlama dilleri konusunda yardım arıyorsanız, Hangi Programlama Dili Öğrenilmeli? isimli gönderimi inceleyebilirsiniz.

İkili Kod Sistemini Neden Bilmem Gerekiyor?

İkili Kod Sistemi (Binary Code), bilgisayarların anlayabileceği bir sistem iken, ben neden bilmeliyim ki sorusunu kendinize soruyorsanız, hiçte haksız değilsiniz. Çok büyük bir olasılıkla İkili Kod Sistemi ile bir bilgisayar programı kodlamayacaksınız. Bunun yerine, sizin ve benim gibi geliştiriciler bilgisayarlara talimat vermek için daha kullanıcı dostu başka programlama dillerini kullanıyor olacağız.

İkili Kod Sitemi, muhtemelen Programlama ve Bilgisayar Biliminin altında yatan en temel kavramdır. Kullandığınız her bilgisayarı olduğu gibi çalıştıran şey budur. İkili Kod ile bilgisayarlar ile iletişim kurabilir ve onlara talimatlar verebiliriz. Kod yazmak için kullandığımız programlama dilleri her ne kadar görünüşte İkili Kod Sisteminden uzak gibi olsalar da, çalıştığımız ortamlar programlarımızın çalıştırılması için onları İkili Kod Sistemine çevirirler. Bu 1’ler ve 0’lar, bilgisayarların nasıl girdi aldığını, bilgileri nasıl depoladığını ve işlediğini ve ayrıca kullanıcıları için çıktılar ürettiğini tanımlar.

Bu nedenle, en azından ikil kod sisteminin ne olduğunun ve nasıl çalıştığının temellerini anlamak yalnızca ilginç ve etkileyici değil, aynı zamanda oldukça da kullanışlıdır. Ancak ikili kod kavramı ilk başta soyut ve anlaşılması zor görünebilir ki bu konuda hiç endişelenmeyin. Önemli olan, bu kadar basit bir dilin, günlük olarak gördüğünüz ve kullandığınız en karmaşık bilgisayar programlarına ve bilgi yapılarına nasıl tercüme edilebileceğinin farkında olmanızdır.

İkili Kod Nedir?

Biraz daha kolay anlayabilmemiz açısından, ikili kod sistemini evet – hayır, açık – kapalı vb. şekillerde düşünebiliriz. Anlayacağınız üzere 1 evet ve açık durumlarını, 0 ise hayır ve kapalı durumlarını temsil edecektir.

Evet ama her şey bu kadar basit olmamalı. Evet ve Hayır ile nasıl programlama yapabiliriz ki?

Konuyu biraz daha aydınlatmak için, bilgisayarların ne yaptığını kısaca bir düşünelim.

  1. Kullanıcıdan bir girdi alır.
  2. Bu girdiyi bilgiye çevirir. Saklar veya İşler.
  3. Kullanıcıya çeşitli türlerde çıktı verir.

Örneğin, bilgisayarınızda yazı yazarken, klavyedeki tuşlara basarak, bilgisayarın sizden girdi almasını sağlarsınız. Sonrasında ise bilgisayarınız bu girdileri belirli kelimelere ve sayılara çevirir. Kelime ve sayı bilgilerine çevirdiği bu girdileri, ekrana yazarak size çıktı verir.

İkili Kod bunun neresinde?

Bilgisayarlar 1 ve 0 ile Ne Yapar?

İlk bilgisayarların üretildiği günlerde, insanların bilgisayarlardan çıktı almasına yarayan ampuller kullanılıyordu. Böylece, bir kullanıcı bilgisayardan bir tür çıktı veya mesajı almak için belirli bir ışığın açık olduğunu görebiliyordu.

Aynı şey günümüzde arabanızı sürerken, göstergelerde yanan uyarı ışıklarıyla da oluyor. Bu arabanızda olan bir sorun veya uyarı hakkında bilgi sahibi olmanız için verilen bir çıktı. Yani modern bilgisayarla, bu 1’ler ve 0’lar hemen hemen her şey olabilir. Ancak genellikle sayıları, harfleri ve diğer sembolleri temsil ederler.

Sonuç olarak, yukarıda verdiğimiz basit Evet – Hayır ya da Açık – Kapalı örneğimiz, karmaşık bir hale dönüşebiliyor.

Bilgisayarlar Bilgileri Nasıl Depolar?

İkili kod ve ikili sayıların gerçekte nasıl çalıştığını düşünmeden önce, veri depolamayla ilgili temel bir noktayı ele almak istiyorum.

Yukarıda bahsettiğim gibi, bilgisayarlar bilgileri depolamak ve işlemek için girdiler alırlar. Bu bilgi veya veriler, herhangi bir bilgisayarın çalışması için temel bileşenlerdir. Bir bilgisayarın içine baktığınızda, bir sürü devre ve kablo göreceksiniz. Tüm bilgileriniz burada doğru yere taşınırlar ve doğru yerde işlenirler.

Tartışmakta olduğumuz 1’ler ve 0’lar, bir bilgisayarın anladığı en küçük veri birimini temsil ediyor. Evet – Hayır örneğimizdeki herhangi bir değer, bir bitlik veriyi depolamak için ihtiyacımız olan şeydir. “Evet” veya “Hayır” olmak üzere iki farklı seçeneği belirtmeniz yeterlidir. Biliyorum, sadece iki seçeneğe sahip olmak bize çok fazla seçenek vermiyor. Ama konuyu anlamak açısından bu şekilde düşünmek oldukça pratik.

Bir ampulle 1 bit bilgi depolayabildiğimizi düşünelim. 10 ampulle 10 bit depolardık. Dolayısıyla, yeterli ampulümüz olsaydı, istediğimiz miktarda veriyi dijital bir biçimde depolayabilirdik.

Verileri Bit Olarak Saklamak

Elbette bilgisayarlar bugünlerde verileri depolamak için basit ampullerden başka yöntemler ve teknolojiler kullanıyorlar. Ampul kullanmak yalnızca çok fazla yer kaplamakla kalmaz, aynı zamanda verileri saklamak da zor olurdu. Ayrıca bir bilgisayarı yalnızca ampul kullanarak kapatmak, güç kesildiğinde verileri kaybedeceğimiz anlamına da gelirdi. Bu nedenle, bilgisayarlar bilgileri, ampuller yerine elektronları kapasitörlerde tutarak depolarlar. Bu teknolojinin kullanıldığı yer ise DRAM bellekleridir.

Peki yine ampul cinsinden düşünecek olursak, 1 DRAM Belleğe kaç ampul sığardı?

Örneğin, bilgisayarınızda 4GB boyutunda bir DRAM olduğunu varsayalım.

1 GB = 2³⁰ bayt ve 1 bayt = 8 bit

Bu, 4 GB’lık DRAM belleğinizin 2³⁰ x 4 x 8 = 34,359,738,368 bit boyutunda olduğu anlamına gelir. Bu tam 34 MİLYAR AMPUL demek! Ayrıca burada bahsettiğimiz şey basit bir DRAM. Dikkat ettiyseniz 1 TB kapasiteli herhangi bir sabit sürücü değil.

Bu nedenle, modern bilgisayarların tek bir ışığı açıp açmamaya karar vermekten çok daha fazlasını yapabileceği ortada. İkili kod yalnızca 1’ler ve 0’lardan oluşsa bile, günümüzün en karmaşık bilgisayar programlarını temsil edebilirler.

İkili Kod Nasıl Çalışır?

Bilgiyi depolamak için 34 milyar bit olması ne anlama geliyor?

Bitlerin bizim için neler yapabileceğini anlamak adına ikili kod sistemine daha yakından bakalım.

Okulda öğrendiğimiz 0 ile 9 arasında değişen sayılar, ondalık sayı sistemini oluşturur. Sayısal bir değeri temsil etmek için bu 10 basamağın herhangi bir kombinasyonunu kullanabilirsiniz. Dahası, bu sayıları nispeten hızlı bir şekilde kullanarak toplama, çıkarma ve diğer temel hesaplamaları nasıl yapacağınızı biliyorsunuz. Ondalık sistemde, belirli bir sayıdaki her rakam, sağ taraftan başlayarak 1’leri, 10’ları, 100’leri vb. temsil eder.

Yani, “345” sayısıyla; 1’leri temsil eden 5’e, 10’ları temsil eden 4’e ve son olarak 100’leri temsil eden 3’e sahibiz.

Ondalık sistem, bu üç basamak “düzeyi” arasında ayrım yapmak için 10’un katlarını kullanır:

  • 1’ler:  100 ‘ı temsil eder.
  • 10’lar: 101 ‘i temsil eder.
  • 100’ler:  102 ‘yi temsil eder.

İkili Kod Sisteminde Sayılar Nasıl Çözülür?

İkili sistemde 10’un kuvvetlerini kullanmak yerine 2’nin kuvvetlerini kullanırız. Öyleyse, yukarıdaki ondalık örneğe benzer şekilde düşünelim.

Birkaç basamaklı bir ikili kod sistemi sayımız olduğunu varsayarsak, tekrar sağ taraftan başlayarak şu adımları izleyebiliriz:

  1. Birinci Basamak        : 2 0 = 1
  2. İkinci Basamak          : 2 1 = 2
  3. Üçüncü Basamak       : 2 2  = 4
  4. Dördüncü Basamak   : 2 3 = 8
  5. Beşinci Basamak        : 2 4  = 16
  6. Altıncı Basamak         : 2 5  = 32
  7. Yedinci Basamak        : 2 6  = 64
  8. Sekizinci Basamak      : 2 7 = 128
  9. Dokuzuncu Basamak  : 2 8 = 256
  10. Onuncu Basamak        : 2 9 = 512

şeklinde devam eder.

Ondalık sistemden farklı olarak burada, ikili olan bu rakamların her biri bize rakamın “evet” veya “hayır” olduğunu söyler.

Bir Örnek Yapalım

Az önce örnek verdiğimiz 345 sayısını ikili sistemde nasıl düşünebiliriz?

  1. Öncelikle yukarıdaki listeden 2’nin kuvvetlerini inceleyerek başlayalım. 345 değerinden küçük olan en büyük değeri bulmamız gerekiyor.
  2. 256 sayısının olduğu basamağı görüyoruz. Bu nedenle bu durumda  “Birinci Basamaktan”, “Dokuzuncu Basamağa” kadar 9 ikili rakama ihtiyacımız var .
  3. Numaramıza 256 sayısı “dahil” olduğuna göre, bunu “1” ile gösterelim.
  4. Basit bir çıkarma işlemi yapalım: 345 – 256 = 89
  5. Yine ilk adımı tekrarlayalım ve 89’dan küçük olan en büyük değeri bulalım. Bunun 64 olduğunu görüyoruz, bu yüzden 26 için “1” değerini veriyoruz.
  6. Şimdi tekrar çıkaralım: 89 – 64 = 25
  7. İlk adıma geri dönersek,  “1” için kullanmamız gereken değerin, 16’nın yeri veya 24 noktasında olduğunu görürüz.
  8. Hangi ikili basamakların “1” veya “0” değerini aldığını bulmak için bu adımları tekrarlamaya devam ediyoruz.

Son olarak elde ettiğimiz ikili kod sistemi şu şekilde olacaktır : 101011001

Bu görsele bakacak olursanız, İkili Kod Sistemini daha rahat anlayabilirsiniz.

İkili sayılarda hesaplama yapmak elbette biraz daha zor çünkü 10’un kuvvetlerine dayanan bir sayı sistemine alışkınız.

Ancak ikili kod sistemi; metin, resim veya ses gibi diğer türdeki bilgiler için nasıl çalışıyor? İster inanın ister inanmayın ama metin ve görsel gibi unsurlar bile ikili kod sistemi ile gösterilir.

İkili Kod ile “Metin”

İkili kod ile alfabedeki farklı harfleri temsil etmek için basit sayılar kullanabiliriz. Yani bunlar “A”, “B”, “1”, “2” vb. olabilirler.

Bu şekilde, herhangi bir kelimeyi veya paragrafı, bu sayıların bir dizisi olarak temsil edebiliriz. Bilgisayar ise, daha sonra bu numaraları “evet” veya “hayır” sinyallerini kullanarak, bilgi olarak saklayabilir.

Dolayısıyla, telefonunuzda veya bilgisayarınızda metin okuduğunuzda, ekranınızda gördükleriniz bunun gibi ikili kod sistemine dayanır.

İkili Kod ile “Resim ve Grafikler”

Alfabeyi sayılarla temsil etmeye benzer şekilde, aynı şeyi görüntüler ve diğer grafik ortamlar için de yapabiliriz. Ekranınızda görüntülenen bir görüntü piksellerden oluşur. Bir görüntüdeki her piksel, görüntülenmesi gereken rengi belirleyen sayısal bir değere sahiptir.

Tek bir görüntünün milyonlarca pikselden yapılabileceğini düşünürsek, burada çok büyük miktarda bilgiden bahsediyoruz! Ama sonuç olarak kesinlikle ikili kod sistemi burada da tüm işi halledebiliyor.

Böylesine büyük bir bilgiyi derleyip, işlem yapabilmesi için güçlü bilgisayarlara ihtiyacınız olacak. İşlemciniz ve grafik kartınız bilgisayarınız gücünü etkileyen en önemli donanımlardandır. APU, CPU ve GPU arasındaki farkları incelediğimiz “APU, CPU ve GPU Arasındaki Fark Nedir?” yazısını inceleyerek bu donanımlar hakkında detaylı bilgi sahibi olabilirsiniz.

Özetlemek Gerekirse

Buraya kadar konudan kopmadan devam edip, okuduysanız çok teşekkür ederim. Böylesine soyut bir konuyu, elimden geldiğince somutlaştırmaya çalışarak anlattım. Bilgisayarınız için kod ve programlar yazdığınızda, bu ikili sayılarla doğrudan uğraşmıyorsunuz. Ancak, tüm bu 1’lerin ve 0’ların sizin için neler yapabileceğiyle ilgileniyor olacaksınız. Bu nedenle, ikili kodun nasıl çalıştığını ve ikili kod sisteminin gerçekte ne anlama geldiğini bilmek, bilgisayar içerisinde işlerin nasıl yürüdüğü hakkında bilgi verir.

Bilgisayarınız yaptığı her şeyin amacı:

  • Girdi almak
  • Bilgiyi depolamak
  • Bilgiyi işleme
  • Çıktı üretmek

Yani, bir bilgisayar programı veya sistemi ne kadar karmaşık olursa olsun, hepsi sadece 1’ler ve 0’lar ile gelir.

Üzerinde yıllarca çalıştığımız, kendimizi geliştirmek için, yüzlerce kaynağa göz attığımız yazılım biliminin çekirdeğinde sadece 1 ve 0 var. İlginç. Ama emin olun hepimiz bu işi bu yüzden seviyoruz.

İkili kod sistemi ve ikili kodun nasıl çalıştığı hakkındaki bu makaleyi beğendiyseniz, arkadaşlarınızla paylaşmayı ihmal etmeyin.

Her birinize keyifli günler ve mutlu kodlamalar!

Paylaşmak İster Misiniz?