Ders 01 / 16
İkilik Sayı Sistemi
Konum değerine dayalı sayı sistemleri, ikilik gösterim ve tabanlar arası dönüşüm.
İçindekiler
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:
Bu düzene konum değerli gösterim (positional notation) denir. Üç bileşeni vardır: bir taban (base) , ’dan ’e kadar adet rakam, ve sağdan sola artan üsler. Genel olarak, rakamları olan bir sayının değeri şudur:
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 ’e daralır — ve bu, iki durumlu bir donanımın doğrudan karşılığıdır.
İkilik Gösterim
İkilik (binary) sistemde taban , rakamlar ve ’dir. Tek bir ikilik rakama bit denir; sözcük “binary digit” ifadesinin kısaltmasıdır. Konum değerleri ikinin kuvvetleridir:
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 olan bitlerin konum değerlerini toplamak yeterlidir, çünkü olanların katkısı yoktur.
Burada sağdan sola konum değerleri ’dir; değeri olan bitler , , ve 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.
için:
| Bölme | Bölüm | Kalan |
|---|---|---|
| 26 | 1 | |
| 13 | 0 | |
| 6 | 1 | |
| 3 | 0 | |
| 1 | 1 | |
| 0 | 1 |
Kalanlar aşağıdan yukarı okunduğunda 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 , tek sayıların son biti ’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 bit ile
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 ile arasındaki değerleri taşır: en küçük örüntü
00000000, en büyüğü 11111111 yani .
Daha genel olarak, bitlik işaretsiz bir tam sayının aralığı ile arasıdır. Aradaki , 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 |
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.
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 , rakam kümesi ’dir; tek bir ikilik rakama bit denir.
- İkilikten onluğa geçiş, değeri olan bitlerin konum değerlerini toplamaktır; ters yön tekrarlı bölmenin kalanlarını ters sırada okumaktır.
- bit ile tam olarak farklı örüntü yazılabilir; işaretsiz yorumda en büyük değer ’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.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.