Bilgisayarlar 0 ve 1’leri kullanarak nasıl işlem yaparlar?

Burak Kepüç
4 min readAug 30, 2020

--

Bilgisayarların aslında oldukça aptal makineler olduğunu duymuş muydunuz? Onlara bir şey yaptırmak için adım adım komutlar vermemiz gerektiğini ve yalnızca 0 ve 1'ler aracılığıyla bizimle iletişim kurabildiklerini? Küçük yaşlardan itibaren bilgisayarlarla haşır neşir olanlar, bu tür cümleleri mutlaka duymuş veya okumuşlardır. Peki, bu aptal makine, nasıl oluyor da 0 ve 1'leri kullanarak bize büyük teknolojik katkılar sağlıyor?

Bilgisayarların çalışma prensibi ikilik (binary) sayı sistemine dayanır. Bu sistemde her şey iki durumdan birinde bulunur: 0 ya da 1. Tüm modern teknoloji, bu iki durumun kombinasyonlarından oluşur. Bu kodlara makine dili denir, çünkü bu, bilgisayarın anladığı ve işleyebildiği tek dildir. Peki, bu basit kodları nasıl oluyor da ekranda karmaşık sayılar, metinler, videolar, emojiler gibi unsurlar olarak görüyoruz?

Transistörlerin Rolü

Bilgisayarların temel yapı taşı olan transistörler, bu 0 ve 1'leri temsil eder. Transistörler, elektrik sinyallerini açıp kapayarak iki durumu ifade eder: elektrik akımı var (1) veya elektrik akımı yok (0). Milyonlarca transistör, modern işlemcilerde bir araya gelerek karmaşık işlemleri gerçekleştirebilir.

ASCII ve Karakter Kodlama

Bilgisayarların metinleri anlaması ve işlemlemesi için ASCII (Amerikan Standart Kodlama Sistemi) geliştirilmiştir. Bu sistem, sayıların ondalık sistemden (decimal) karakter tipine dönüşmesini sağlar. Örneğin, ASCII kodlamasında, aşağıdaki tabloda da gördüğümüz üzere, 65 sayısı “A” harfine karşılık gelir. ASCII tablosu, tüm alfabe karakterlerini, sayıları ve bazı özel sembolleri içerir, bu da bilgisayarların metinleri doğru şekilde işlemlemesine olanak tanır.

Bit ve Byte Kavramları

Bit, bilgisayar dilinde 0 ve 1'i temsil eder ve en küçük veri birimidir. 8 bit bir araya gelerek 1 byte’ı oluşturur. Byte, 0’dan 255’e kadar olan sayıları ifade eder ve daha büyük veri yapılarını temsil etmek için kullanılır. Bu küçük yapı taşları, bilgisayarların büyük ve karmaşık veri setlerini işlemesine olanak tanır. Örneğin, bir görüntü dosyası milyonlarca byte’tan oluşabilir.

Sayı Sistemleri Arasındaki Dönüşümler

İkilik (binary) sistemi, günlük hayatta kullandığımız onluk (decimal) sisteme dönüştürmek, bilgisayarın temel bir görevidir. İkilik sistemde her basamak, 2'nin kuvvetleri olarak ifade edilir. Örneğin, ikilik sistemde 1101 sayısı, onluk sistemde şu şekilde hesaplanır:

2'lik sistemde 1101 sayısı

65 Sayısının Örneği

ASCII kodlamasında 65 sayısının “A” harfine karşılık geldiğini belirtmiştik. Şimdi, bu sayıyı ikilik sisteme çevirerek inceleyelim. 65 sayısı ikilik sistemde şöyle ifade edilir:

65 Sayısı Binary Açılımı

Bu işlem sonucunda, 65 sayısının ikilik sistemde 1000001 olarak ifade edildiğini görürüz. Bilgisayar bunun gibi milyonlar gibisini saniyeler içinde hesaplayıp, bize çıktı olarak gösterebilir. Şu an ekranda gördüğünüz yazılar bu sistem ile oluşmakta :)

ASCII’nin Ötesi: Unicode

Günümüzde sadece ASCII kullanılmamaktadır. ASCII sistemi toplamda yalnızca 8 bit kullanabilir, bu da maksimum 256 karakter anlamına gelir. Bu, modern ihtiyaçlar için yetersiz kalır çünkü daha karmaşık semboller ve farklı dillerin karakterlerini ifade etmek gerekir. Bu nedenle, Unicode karakter sistemi geliştirilmiştir. Unicode, ASCII’ye göre daha gelişmiş olup, 32 bit’e kadar kullanım imkanı sunar. Unicode’un en yaygın biçimi UTF-8'dir.

Renklerin Temsili: RGB Sistemi

Dünyada RGB (Red, Green, Blue) adında bir renk sistemi daha vardır ve bu sistem kırmızı, yeşil ve mavi renkleri temsil etmek için kullanılır. RGB renk modeli, her bir rengin 0–255 aralığında değer almasıyla çalışır. Bu üç temel rengin çeşitli kombinasyonları ile istenilen herhangi bir renk elde edilebilir. Tüm emojiler, bir araya gelen piksellerden oluşur ve her piksel, RGB değerleri ile belirlenen bir renge sahiptir.

Emoji Oluşturma

Peki, bir emoji oluşturmak istesek bunu nasıl yaparız? Unicode sayesinde emojiler, çeşitli karakter setleri ile birlikte kullanılabilir. Her bir emoji, belirli bir Unicode karakterine karşılık gelir. Örneğin, 😀 emojisi Unicode’da U+1F600 koduna sahiptir.

U+1F600 Emoji Karakterinin Temsili

  • Unicode kod noktası: U+1F600
  • Onaltılık (hex) sistemde: 1F600
  • Onluk (decimal) sistemde: 128512

İkilik sistemde 128512 sayısı: 11111011000000000 sayısına eşittir.

Bu, Unicode’da bir karakterin nasıl önce byte daha sonra da bit olarak temsil edildiğini gösterir.

Resim ve Fotoğraflar

Bilgisayar ekranında gördüğümüz tüm resim ve fotoğraflar, bu temel renklerin kombinasyonlarından oluşur. Her bir resim, milyonlarca pikselden meydana gelir ve her pikselin RGB değerleri, belirli bir rengi temsil eder. Bir resmin çözünürlüğü ne kadar yüksekse, o kadar fazla piksel içerir ve bu da daha keskin ve detaylı görüntüler elde edilmesini sağlar.

Video Dosyaları

Video dosyaları ise, FPS (saniyedeki kare hızı) ile art arda gelen görüntülerden oluşur. Bu kareler, saniyede 24, 30, 60 veya daha fazla kare hızında gösterilir. İnsan gözünün algılayabileceği hızda geçtikleri için, bu sabit görüntülerin bir dizisini kesintisiz hareket eden bir görüntü olarak algılarız. Bu, “hareket yanılsaması” olarak bilinir ve videoların nasıl çalıştığını anlamamızda temel bir rol oynar.

Her bir video karesi, bir resim dosyası gibidir ve her kare RGB renk modeli kullanılarak kodlanmış milyonlarca pikselden oluşur. Karelerin hızlı bir şekilde art arda gelmesiyle, akıcı bir hareket illüzyonu yaratılır. Örneğin, bir saniyede 30 kare gösterilen bir video, saniyede 30 farklı resim karesi içerir ve bu kareler hızlı bir şekilde gösterildiğinde, gözümüz bu kareleri kesintisiz bir hareket olarak algılar.

--

--