---
title: 'İkilik Sayı Sistemi'
source: 'https://academia.sh/tr/kurslar/bilgisayarlar-nasil-calisir/ikilik-sayi-sistemi'
course: 'Bilgisayarlar Nasıl Çalışır'
language: tr
updated: '2026-08-17T18:08:07+00:00'
license: 'CC BY-SA 4.0'
---

# İkilik Sayı Sistemi

Konum değerine dayalı sayı sistemleri, ikilik gösterim ve tabanlar arası dönüşüm.

Bir bilgisayarın belleğinde duran her şey — bu ders metni, bir fotoğraf, çalışan
programın kendisi — aynı türden bir nesnedir: iki durumlu anahtarlardan oluşan bir
dizi. Bu dersin sorusu şudur: iki durumdan başka bir şey tutamayan bir ortamda sayılar
nasıl yazılır?

Yanıt, aslında günlük hayatta kullanılan sayı sisteminin daha genel bir kuralının özel
bir hâlidir. Bu yüzden ikilik sisteme geçmeden önce, onluk sistemin ne yaptığına
dikkatle bakmak gerekir.

## Konum Değeri

Onluk sistemde `4703` yazıldığında dört ayrı simge yan yana konur, ama ifade edilen
değer bu simgelerin toplamı değildir. Her simgenin katkısı, bulunduğu konuma bağlıdır:

$$
4703 = 4 \times 10^3 + 7 \times 10^2 + 0 \times 10^1 + 3 \times 10^0
$$

Bu düzene **konum değerli gösterim (positional notation)** denir. Üç bileşeni vardır:
bir **taban (base)** $b$, $0$'dan $b-1$'e kadar $b$ adet **rakam**, ve sağdan sola
artan üsler. Genel olarak, rakamları $d_{n-1} d_{n-2} \dots d_1 d_0$ olan bir sayının
değeri şudur:

$$
\sum_{i=0}^{n-1} d_i \times b^{i}
$$

Onluk sistemin özel bir yanı yoktur; tabanın on olması, elde on parmak bulunmasının
tarihsel bir sonucudur. Kural her taban için aynı işler. Taban ikiye indirildiğinde
rakam kümesi $\{0, 1\}$'e daralır — ve bu, iki durumlu bir donanımın doğrudan
karşılığıdır.

## İkilik Gösterim

**İkilik (binary)** sistemde taban $2$, rakamlar $0$ ve $1$'dir. Tek bir ikilik rakama
**bit** denir; sözcük "binary digit" ifadesinin kısaltmasıdır. Konum değerleri ikinin
kuvvetleridir:

$$
1011_2 = 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 8 + 0 + 2 + 1 = 11
$$

Alt simge, sayının hangi tabanda yazıldığını bildirir. Bu belirtme gereklidir: `1011`
dizisi onluk okunursa bin on bir, ikilik okunursa on bir eder. Aynı simge dizisinin
farklı tabanlarda farklı değerler taşıması, ilerideki derslerde daha sert bir biçimde
karşınıza çıkacaktır — aynı bit dizisi, yorumlayana göre bir sayı, bir harf veya bir
komut olabilir.

İlk on ikilik sayı, karşılıkları ile birlikte:

| Onluk | İkilik | Onluk | İkilik |
|---|---|---|---|
| 0 | 0 | 5 | 101 |
| 1 | 1 | 6 | 110 |
| 2 | 10 | 7 | 111 |
| 3 | 11 | 8 | 1000 |
| 4 | 100 | 9 | 1001 |

Bir örüntü göze çarpar: sayı her ikinin kuvvetine ulaştığında bir basamak daha gerekir.
Onluk sistemde `9`'dan `10`'a geçerken olan şeyin aynısı, ikilik sistemde `1`'den
`10`'a geçerken olur.

## İkilikten Onluğa

İkilik bir sayıyı onluğa çevirmek, tanımı doğrudan uygulamaktır: bitlerin konum
değerlerini toplayın. Değeri $1$ olan bitlerin konum değerlerini toplamak yeterlidir,
çünkü $0$ olanların katkısı yoktur.

$$
110101_2 = 32 + 16 + 4 + 1 = 53
$$

Burada sağdan sola konum değerleri $1, 2, 4, 8, 16, 32$'dir; değeri $1$ olan bitler
$0.$, $2.$, $4.$ ve $5.$ konumlardadır.

## Onluktan İkiliğe

Ters yön için tekrarlı bölme kullanılır. Sayıyı ikiye bölün, kalanı yazın, bölümle
devam edin; bölüm sıfıra ulaşınca kalanları **ters sırada** okuyun.

$53$ için:

| Bölme | Bölüm | Kalan |
|---|---|---|
| $53 \div 2$ | 26 | 1 |
| $26 \div 2$ | 13 | 0 |
| $13 \div 2$ | 6 | 1 |
| $6 \div 2$ | 3 | 0 |
| $3 \div 2$ | 1 | 1 |
| $1 \div 2$ | 0 | 1 |

Kalanlar aşağıdan yukarı okunduğunda $110101_2$ elde edilir; bir önceki bölümde
hesaplanan değerle tutarlıdır.

Yöntemin neden çalıştığı, konum değeri tanımına bakılınca görülür. Bir sayının ikiye
bölümünden kalan, o sayının en sağdaki bitidir: çift sayıların son biti $0$, tek
sayıların son biti $1$'dir. Bölüm alındığında sayı bir basamak sağa kaydırılmış olur ve
aynı soru bir sonraki bit için sorulur.

## Bit, Bayt ve Değer Sayısı

Tek bir bit iki durum ayırt eder. İki bit dört, üç bit sekiz durum ayırt eder. Genel
olarak $n$ bit ile

$$
2^n
$$

farklı örüntü yazılabilir. Bu, temsil kapasitesinin üst sınırıdır ve donanımdan
bağımsız bir sayma gerçeğidir: 8 bitle 256 farklı örüntü vardır, 257'nci örüntü yoktur.

Sekiz bitlik gruba **bayt (byte)** denir. Bayt, belleğin adreslenebilen en küçük
birimidir; işlemci tek bir biti değil, en az bir baytı okur. Bir bayt işaretsiz tam sayı
olarak yorumlandığında $0$ ile $255$ arasındaki değerleri taşır: en küçük örüntü
`00000000`, en büyüğü `11111111` yani $2^8 - 1 = 255$.

Daha genel olarak, $n$ bitlik işaretsiz bir tam sayının aralığı $0$ ile $2^n - 1$
arasıdır. Aradaki $-1$, sıfırın da bir örüntü harcamasındandır. Yaygın genişlikler ve
sınırları:

| Genişlik | Örüntü sayısı | İşaretsiz en büyük değer |
|---|---|---|
| 8 bit | 256 | 255 |
| 16 bit | 65.536 | 65.535 |
| 32 bit | 4.294.967.296 | 4.294.967.295 |
| 64 bit | $\approx 1{,}8 \times 10^{19}$ | $2^{64} - 1$ |

Bu tablo ilerideki derslerin sık başvuracağı bir sınırı içerir. Bir değişkenin genişliği,
o değişkenin tutabileceği en büyük değeri belirler; sınır aşıldığında sayı büyümez,
temsil bozulur. Taşma (overflow) davranışı, işaretli sayıları ele alan derste
ayrıntılandırılacaktır.

## Dönüşümü Programla Görmek

Aşağıdaki program, bu derste elle yapılan iki dönüşümü yürütür ve sonuçlarını yerleşik
işlevlerle karşılaştırır.

```python
def onluktan_ikilige(sayi: int) -> str:
    """Negatif olmayan bir tam sayının ikilik gösterimini döndürür."""
    if sayi == 0:
        return "0"
    bitler = []
    while sayi > 0:
        bitler.append(str(sayi % 2))   # kalan: en sağdaki bit
        sayi //= 2                     # bölüm: bir basamak sağa kaydırma
    return "".join(reversed(bitler))


def ikilikten_onluga(gosterim: str) -> int:
    """İkilik gösterimi konum değerlerini toplayarak çözer."""
    deger = 0
    for bit in gosterim:
        deger = deger * 2 + int(bit)
    return deger


print(onluktan_ikilige(53))          # 110101
print(ikilikten_onluga("110101"))    # 53
print(bin(53), int("110101", 2))     # 0b110101 53
```

`ikilikten_onluga` işlevindeki `deger * 2 + int(bit)` satırı, konum değeri tanımının
soldan sağa okunan biçimidir: her yeni bit, o ana kadar birikmiş değeri bir basamak
sola kaydırır ve kendi katkısını ekler.

Python'un yerleşik `bin` işlevi ikilik gösterimi `0b` önekiyle verir; `int` işlevinin
ikinci parametresi ise okunacak tabanı belirtir. Bu önek yalnızca bir yazım
sözleşmesidir, sayının kendisinin parçası değildir.

## Özet

- Konum değerli gösterimde bir rakamın katkısı, taban üssü ile konumundan belirlenir;
  onluk sistemin ayrıcalığı yoktur.
- İkilik sistemde taban $2$, rakam kümesi $\{0, 1\}$'dir; tek bir ikilik rakama bit denir.
- İkilikten onluğa geçiş, değeri $1$ olan bitlerin konum değerlerini toplamaktır;
  ters yön tekrarlı bölmenin kalanlarını ters sırada okumaktır.
- $n$ bit ile tam olarak $2^n$ farklı örüntü yazılabilir; işaretsiz yorumda en büyük
  değer $2^n - 1$'dir.
- Sekiz bitlik gruba bayt denir ve bellek bayt düzeyinde adreslenir.

## Sonraki Adım

İkilik gösterim donanıma sadıktır, ancak insan gözü için elverişsizdir: 32 bitlik tek
bir değer, hata yapmadan okunması güç bir sıfır–bir dizisidir. Sonraki ders, aynı bit
örüntüsünü daha az simgeyle ve bit sınırlarını bozmadan yazmayı sağlayan onaltılık
tabanı ele alacak; o dersle birlikte, kurs boyunca tekrar tekrar başvurulacak somut bir
örnek de kurulacaktır.
