Bilgisayarlar, internet ağları, blok-zincirler ve geleceğimizi şekillendiricek olan kriptografi teknolojilerinden bahsetmek istediğim serimin ilk makalesini en temelinden başlamak istedim. Bu seriyi yazma amacım, hiç bir teknik eğitimden gelmeyerek sistemleri bir mühendis seviyesine yakın derecede anlayabilmek ve anlatabilmek. :3
İkili sistem (Binary), 0 ve 1'leri kullanarak sayıları ifade eden ve saymayı kolaylaştıran güçlü bir sayı sistemidir. Bilgisayarların ve dijital cihazların temelini oluşturur. Az çok herkes, bilgisayarların gerçekleştirdiği her şeyin bu sistemden geldiğini bilir, fakat mekanik olarak nasıl çalıştığını bilmez.
Öncelikle ikili sistemin ne olduğuna ve neden var olduğuna değinelim. İkili sistem aslında sadece bir sayı sayma sistemidir. Nasıl çalıştığını anlamak için elimizdeki diğer sayma sistemlerine bakalım;

Çetele İşaretleri (Tally Marks):
Var olan en basit sayma sistemi fakat pek sürdürülebilir değil.
1 | (one tally mark) 2 || (two tally marks) 3 ||| (three tally marks) 4 |||| (four tally marks) 5 ||||\ (five tally marks, with a diagonal line) 6 ||||\ | (six tally marks, starting a new set) 7 ||||\ || (seven tally marks)Onluk Taban Sistemi:
Günümüzde saymak için kullandığımız sistem.
Places: | Thousands | Hundreds | Tens | Units | ---------------------------------------------------- Digits: | 3 | 4 | 5 | 2 | ---------------------------------------------------- Powers of 10:| 10^3 | 10^2 | 10^1| 10^0 | ---------------------------------------------------- Values: | 3000 | 400 | 50 | 2 | ----------------------------------------------------Bu sistemin en iyi yanı, eklenen her basamağın temsil edebileceğimiz değerlerin miktarını katlanarak artırmasıdır.

İkili sistem aslında buna çok benzer fakat aradaki fark her yeni basamak 1. değer yerine 9. değerden sonra eklenir.
Onluk Sistem: x>9 → Yeni basamak
İkili Sistem: x>1 → Yeni basamak
ikili sistem ile saymak;
0, 1, 10, 11, 100, 101, 110, 111, 1000…

Onluk sistemde her eklenen basamak ile temsil edebilceğimiz değer 10’un kuvvetleri şeklinde artarken, ikili sistemin her basamağı 2 değere sahip olması sebebi ile 2’nin kuvvetlerine katlanarak artar.

İkili sistemin sayarak ifade edilebilen değer açısından çetele sisteminden daha verimli olduğu kesin olsa da bilgisayar icad eden ve geliştiren bilim adamları neden onluk sistem kullanmıyor olabilir?
Bu bilgisayarların tasarımındaki fiziksel bir limit ile alakalıdır. Bir bilgisayarın yaptığı her şey mikro transistör adı verilen küçük anahtarlar sayesinde gerçekleşir.

Transistör, elektrik sinyallerini ve gücünü değiştirmek için kullanılan yarı iletken bir cihazdır.

Yukarıda gördüğünüz sistemde, küçük bir elektrik akımı ile açık olan anahtarlar 1, kapalı olanlar ise 0 rakamını ifade eder. Bu şekilde bilgisayar, sayısal işlemleri gerçekleştirebilir.
Bilgisayarlar bu açık ve kapalı durumları kullanarak ikili (binary) sayı sisteminde verileri işler ve saklar. Açık olan anahtarlar (1) ve kapalı olan anahtarlar (0), bilgisayarın mantık kapıları aracılığıyla karmaşık işlemler yapmasını sağlar.
Karşılaştırma yapabilmeniz için;
Çetele sistemini kullanan 8 anahtar maksimum 8 değer ifade edebilir:
1+1+1+1+1+1+1+1=8
İkili sistem kullanarak 8 anahtar maksimum 256 değer ifade edebilir;
1+2+4+8+16+32+64+128=256
Sürekli duyduğumuz BIT ve byte sözcükleri, bu transistörleri ve temsil edebildikleri değerleri tanımlamak için kullanılır. 1 bit, bilgisayardaki en küçük veri birimidir ve yalnızca iki değeri olabilir: 0 veya 1. Bir byte ise 8 bit'ten oluşur ve 256 farklı değeri temsil edebilir.
1 transistör = 1 BIT (BInary digiT)
BIT (Binary Digit): Bir bit, bilgisayardaki en küçük veri birimidir ve yalnızca iki değeri olabilir: 0 veya 1. Bu, bir transistörün kapalı (0) veya açık (1) durumuna karşılık gelir.
8 transistör = 1 byte (0-255 arası herhangi bir rakam)
Byte: Bir byte, genellikle 8 bit'ten oluşur ve bu sayede 256 farklı değeri temsil edebilir. Bilgisayarlar, bilgileri işlemciye iletmek ve saklamak için byte'ları kullanır.
Bilgisayarın temel çalışma prensibi sayısal işlemlerle gerçekleşirken, kelimeleri nasıl üretebilir ve okuyabilir?
Bu, bilgisayarın yalnızca rakamlardan oluşan verileri harflere dönüştüren ASCII isimli bir alfabe sayesinde mümkündür. ASCII, her karakteri belirli bir sayısal değere karşılık gelen bir kodlama sistemi sunar. Bu sayede bilgisayar, metin tabanlı verileri işleyebilir ve görüntüleyebilir.

1 byte, 8 bit verinin temsil edebildiği 256 değere karşılık gelir ve bu değerler farklı harfler ve sembollerle eşleştirilerek bizim görebildiğimiz ve okuyabildiğimiz kelimeleri ekranda oluşturur. Gördüğümüz her harf, 8 transistörün ortaya çıkardığı sayısal verinin bir harfe denk gelmesi sonucundadır. ASCII, bu özel evrensel alfabeye verilen isimdir.

"A" harfi, ikili sistemde 65 sayısına denk gelir. A sayısının ikili sistemde nasıl yazıldığına detaylıca baktığımızda, sadece basit bir dizi yazı yazmak için bile gereken transistör sayısının çok fazla olduğunu görebiliriz.

Daha önce bahsettiğimiz gibi 8 adet transistör 8 bit yani 1 byte olarak tanımlanır. Bu da bize 256 değer tanımlama olanağı sağlar.
Zamanla bu teknoloji gelişerek, 8 bit, 16 bit, 32 bit ve daha fazla değer tanımlayabilen kapasitelerde ilerlemiştir.
Örneğin, Nintendo Entertainment System (NES) ilk konsolu 8 bit olduğundan, 256 farklı değeri tanıyabilir. Daha sonra çıkan Super Nintendo Entertainment System (SNES) ise 16 bit olduğundan, 65.535 farklı değeri tanıyabilir. Ancak bu, sistemin her zaman tüm bu değerleri kullanacağı anlamına gelmez; programınız her zaman tüm bu değerleri kullanmayabilir.

Geçmişte aslında 3, 8, 10 ve hatta 16 tabanlı sayı sistemleri ile çalışan modeller denenmiş, ancak fiziksel sınırlamalar ve matematiksel altyapı sebepleriyle 2 tabanlı (ikili) sayı sistemi daha uygun bulunmuştur.
Elektronik devrelerde iki voltaj seviyesini (açık ve kapalı) temsil etmek daha kolay ve güvenilirdir. İkili sistem, bu iki durumu doğrudan kullanarak daha basit ve stabil bir çalışma ortamı sağlar.

Voltaj Durumu: Elektronik devrelerde güvenilir voltaj seviyelerini temsil etmek için genellikle iki durum yeterlidir: "açık" (yüksek voltaj) ve "kapalı" (düşük voltaj). Bu durumlar arasındaki farkı tanımlamak ve hatasız çalışmayı sağlamak daha kolaydır. Üç veya daha fazla voltaj seviyesi kullanmak, her seviyeyi güvenilir ve hatasız bir şekilde tanımlamayı zorlaştırır.
Mantık seviyeleri, dijital devrelerin güvenilir ve tutarlı bir şekilde çalışmasını sağlar. İki seviyenin (yüksek ve düşük) kullanılması, devrelerdeki gürültü ve parazit etkilerini minimize eder. Bu sayede, dijital sinyaller daha kolay ayrıştırılır ve işlenir.
Mantık Seviyeleri* (Logic Levels), dijital elektronik ve bilgisayar mühendisliğinde, bir sinyalin iki belirli voltaj seviyesinden birini ifade etmesi anlamına gelir. Bu voltaj seviyeleri, dijital devrelerde bilgi temsil etmek için kullanılır ve genellikle ikili (binary) sistem üzerinden tanımlanır. Bu seviyelerin anlaşılması, dijital sistemlerin tasarımı ve analizi için kritik öneme sahiptir.*
Gürültü Bağışıklığı: İkili sistem, sinyal gürültüsüne karşı daha dirençlidir. Çünkü iki net voltaj seviyesi arasında geniş bir marj bulunur. Üçlü veya daha fazla seviyeli sistemlerde bu marj daralır ve elektriksel gürültü nedeniyle hata yapma olasılığı artar.
Transistör Tasarımı: Modern dijital devrelerde kullanılan transistörler, ikili durumları temsil edecek şekilde tasarlanmıştır. Daha fazla durumu destekleyen transistörler daha karmaşık, maliyetli ve hata yapma payı yüksek olurdu.

Boolean Mantığı: Bilgisayarların temelini oluşturan boolean mantığı, iki durumlu sistemler üzerine kuruludur. Doğru (1) ve yanlış (0) değerlerine dayanan bir mantık sistemidir.
Boolean mantığı, George Boole tarafından 19. yüzyılda geliştirilmiştir dijital devrelerin temel yapı taşlarını oluşturur ve karmaşık işlemleri gerçekleştirmek için kombinasyon halinde kullanılır.
İkili sistem, bu mantıksal operasyonların (AND, OR, NOT…) en basit ve en etkili şekilde uygulanmasını sağlar. Üçlü veya daha yüksek tabanlı sistemlerde mantık uygulanması daha karmaşık hale gelir.

Hata Tespiti ve Düzeltme: İkili sistem, hata tespiti ve düzeltme algoritmalarının daha etkin bir şekilde uygulanmasına olanak tanır. İkili kodlama yöntemleri (örneğin, parite bitleri, Hamming kodları) üçlü veya daha yüksek tabanlı sistemlere göre daha basit ve etkilidir.
Bu nedenlerle, bilgisayarlar ikili sayı sistemini kullanmayı sürdürmektedir ve bu sistem, modern bilgi işlemde en verimli ve güvenilir çözüm olarak kabul edilmektedir.

