A
B
C
Ç
D
E
F
G
Ğ
H
I
İ
J
K
L
M
N
O
P
R
S
Ş
T
U
Ü
V
Y
Z
Q
W
X
+ Ekle
İkili Sayı Sistemleri

İkili Sayı Sistemleri

 Bilgisayarlar temel olarak anahtarlama mantığıyla çalışan elektronik cihazlardır. Bu yüzden de bir elektrik anahtarı gibi iki olasılığı kullanırlar – on/off, true/false veya 0/1 – şeklinde. Lojik Devreler dersinin de kapsamı tam olarak bu ikili yapı. Biz buna Binary digIT’in kısaltması olan BIT diyor olacağız. Bu noktada akıllara, “Peki iki alternatifi olan bir sistemle nasıl yüzlerce/binlerce farklı olasılık üzerinde durulabilir?” sorusu gelecektir. Cevap aslında sorunun temelinde yatmakta. Şu anda günlük hayatta kullandığımız sayı sistemi olan decimal sistem de toplamda 10 farklı rakama sahip ancak bu rakamları yan yana getirerek ve belirli kurallarla birinin diğerine göre daha anlamlı oluşunu sağlayarak 3447 farklı olasılığı değerlendirebiliyoruz. Aslına bakarsanız bu sayıyı ‘üç bin dört yüz kırk yedi’ şeklinde okurken decimal sistemin tek bir basamakta içinden çıkamayacağı karmaşıklıktaki sayıyı basamaklar yardımıyla anlatmış oluyoruz. Yukarıdaki örneğe benzer olması açısından binary sistem 0 ve 1 rakamlarını içerir. Onluk(decimal) sistemdeki 2’yi anlatmak istediğimizde ise binary sistemde ’10’ kombinasyonunu kullanıyoruz.

Yeri gelmişken genellikle bilgisayar mühendisliğine yeni başlayanların arasında sıkça kullanılan bir espriyi paylaşmak istiyorum. Derler ki; “İnsanlar 10’a ayrılır: binary bilenler ve bilmeyenler.”

Yukarıda anlattığım sebeplerden ötürü bilgisayar bizden farklı sayı sistemleri üzerinde çalışırlar. Bu dersimizde de biz bu sistemlerden bahsedeceğiz. Özel olarak da 2lik, 8lik ve 16lık sayı sistemlerinden. Yine yukarıdaki açıklamaya dayandıracak olursak kolaylıkla söyleyebiliriz ki 8lik sayı sisteminde 8, 16lık sayı sisteminde ise 16 farklı rakam bulunur. İyi de burada basitçe bir başka problemle karşılaşırız. Şu ana kadar bildiğimiz en karmaşık sistemde(elbette ki alışık olduğumuz için daha basit gelebilir ama karmaşıklığı tamamıyla kaç farklı rakamın kombinasyonlarını kullanışıyla skala ediyorum) toplam 10 farklı rakam var. 8lik sistem için her şey yolunda muhtemelen rakamları {0, 1, 2, 3, 4, 5, 6, 7} kümesinden geliyordur deriz ve yanılmayız. Ancak konu 16lık sistem için böylesine basit değil. Basit bir şekilde {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} kümesinden olduğunu söyleyemeyiz çünkü son 6 eleman kümeler mantığıyla bu kümeye bir elemandırlar ama sayı sistemi için düşününce birer rakam değildirler çünkü bu elemanların bileşenleri(bkz. 1 ve 0, 1 ve 1, 1 ve 2 …) ayrı ayrı da anlam ifade ettikleri için ayrımını yapmak mümkün değildir. Bu sebeple rakam denen kavram her sayı sisteminde tekil olarak ifade edilmelidir. Bir başka deyişle matematik dilinde sesteş kelimelere yer maalesef yok. Öyleyse 16lık sistemde daha önceki sistemlerde olmayan son 6 rakamın ifade edilişi nasıl diye merak edenler için de basitçe {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} kümesinin elemanları bu sayı sisteminin rakamlarının küçükten büyüğe sıralanmış halidir diyebiliriz.

Eğer buraya kadar sorunsuz bir şekilde takip edebildiysen, bu konuya ilişkin 2 temel nokta kalmış oluyor. Birincisi bu sayıların birbirine dönüştürülmesi. Bir diğeri ise bu sayılarla ilgili yapılacak aritmetik işlemler. Bu sayıların birbiri arasında dönüşüme başlamadan önce aşağıdaki tabloya göz atmanızı rica etmek istiyorum.

tablo

Başlangıç noktasını yine decimal sistem olarak seçmek istedim çünkü sanıyorum alışkanlıklarımız gereği en rahat olduğumuz alan burası. Temel matematik, konuyla ilgili kural olarak der ki:
348,35 = 3×102 + 4×101 + 8×100 + 3×10-1 + 5×10-2          şeklinde bir eşitlik 10luk sistemde söz konusudur. Öyleyse kabaca (1011,01)2 (6125)8  ve (2C7)16 sayıları için de aşağıdaki şekilde eşitlikler söz konusu olabilir:
(1011,01)2 = 1×23 + 0x22 + 1×21 + 1×20 + 0x2-1 + 1×2-2 = 11,25
(6125)8 = 6×83 + 1×82 + 2×81 + 5×80 = 3157
(2C7)16 = 2×162 + 12×161 + 7×160 = 711

Tam tersi içinse; decimal bir sayının başka bir sayı sistemindeki karşılığını bu sayıyı karşılığı aranan sisteme bölerek kalanların eldesiyle bulunabilir. Örneğin 59 sayısının binary karşılığı için yapılacak işlem adımları aşağıdaki gibidir:
59 | 2 -> Kalan: 1
29 | 2 -> Kalan: 1
14 | 2 -> Kalan: 0
  7 | 2 -> Kalan: 1
  3 | 2 -> Kalan: 1
  1 | 2 -> Kalan: 1

Yukarıdaki işlem adımları sondan başa doğru yan yana yazdığınızda elde edilen (111011)2 sayısı 59 sayısının binary karşılığı olacaktır. Sağlamasını da yine aşağıdaki şekilde görebiliriz:
(111011)2 = 1×25 + 1×24 + 1×23 + 0x22 + 1×21 + 1×20 = 59

Bu noktada sondan başa gitmemiz gerektiğini anlatan en güzel örnek elbette ki seçilen sayının ilk adımda dönüştürmek istediğimiz tabana tam bölünmesi halinde gerçekleşecekti. Başka bir deyişle biz 59 değil de 60 sayısı üzerinde çalışıyor olsaydık durum aşağıdaki gibi olurdu:
60 | 2 -> Kalan: 0
30 | 2 -> Kalan: 0
15 | 2 -> Kalan: 1
  7 | 2 -> Kalan: 1
  3 | 2 -> Kalan: 1
  1 | 2 -> Kalan: 1
Görüldüğü üzere şayet baştan gitmiş olsaydık yazacağımız sayı (001111)2 olacaktı ki biz de aslında 15 sayısının binary dengi olan (1111)2 sayısını bulmuş olacaktık.

Bu bilgiler eşliğinde herhangi bir sayıyı bir başka sayıya çevirmek mümkündür ancak burada basit bir hatırlatma olarak 2li sistemde 3 basamakta tutabileceğimiz en büyük sayı olan (111)2 = 7 sayısı ile 8li sistemin tek basamakta tutabildiği en büyük sayı eşit olduğu için 2lik sayı sisteminden 8lik sisteme geçişte decimal sisteme geçmek mecburi değildir. Sayılardan birinin üç basamağını diğerinin tek bir basamağıyla eşleştirerek işlem yapabilmek mümkün. Aynı şekilde 2lik sistemin 4 basamağı ve 16lık sistemin tek basamağı veya 8lik sistemin 4 basamağı ve 16lık sistemin 3 basamağı da birbirine denk gelebilmektedir.

Son olarak da farklı sayı sistemlerinde basit matematiksel işlemlerin yapılışına biraz kafa yoralım. Aslında burada basit olarak yapacağımız; bizim decimal sistemde, bir nevi, ezberden yaptığımız işlemi yeniden yeniden öğrenmek olacak. Çünkü yeni bir şey yok eski yapılan işlemin kurallarını farklı bir alanda uygulayacağız.
(1101)2 + (1001)2 = (10110)2   
işlemi incelediğinizde 2li sistemde 1+1’in karşılığı başta da belirttiğimiz gibi 2 değil ’10’ olacaktır. Tıpkı onluk sistemde işlem yaparken 5+5’in tek basamakta sonuçlandırılamayıp 10 denişi gibi. Özetle bir anlamlı basamağı bir arttırıp sayı tabanına bölümden kalanı üzerinde işlem yaptığımız basamağa yazıyoruz. Bu prosesin kurallarını bu şekilde netleştirebildiğimiz sürece sayı sisteminin ne olduğunun önemi yok. Yani şundan bahsediyorum toplamayı bir bilgisayar programına uyarlayacak olsaydık, yazmamız gereken toplama fonksiyonu her sayı sistemi için farklı farklı olmamalı tek bir fonksiyon toplama işleminin bileşenlerinin yanı sıra işlemin hangi sayı sisteminde yapılacağını parametre olarak almalıdır.

Çıkarma işleminde de benzer mantığı uygulamak söz konusu. Farklı olarak ise daha anlamlı olan basamağı bir azaltıp üzerinde işlem yaptığımız basamağa sayı tabanı kadar değer eklemek gerektiğidir. İlkokulda bu konu anlatılırken soldan bir 10luk almak da temelde budur. Farklı olarak biz soldan bir 2lik, 8lik, 16lık veya herhangi bir başka sayı sistemi tabanı kadar değer alıyoruz demektir.

Ancak son bir noktaya daha değinmek gerekir ki bu da bilgisayarların temel olarak yalnızca toplama işlemi yaptığı çıkarma işlemi içinse çıkarılacak sayıyı 2’ye göre tersleyip(tümleyip) ilk sayıyla toplamaktır. Bu yüzden de bilinmesi gereken iki küçük noktadan 1’e göre terslemek; ikilik bir sayının 1lerini 0, 0larını 1 yapmaktır. 2’ye göre terslemek ise sayının 1’e göre terslenmiş haline 1 eklemektir. Bu bilgilere göre ise bilgisayarın yaptığı işlem;

A – B = A + B* + 1 şeklindedir ve bu sayede herhangi bir çıkarma işlemi yapmaksızın yalnızca toplama ve tersleme işlemleriyle bilgisayarımız çıkarma işlemini de yapabilmektedir.

  • diline pelesenk olmak ne demek
  • dillere pelesenk olmuş ne demek
  • pelesenk
  • pelesenk ne demek
  • Pelesenk Ne Demek – Pelesenk Sözlük Anlamı
  • pelesenk olmak ne demek
  • pelesenk olmak ne demektir
  • pelesenk olmuş ne demek
  • Yüksek Yüksek Tepelere sözleri
  •   Ad Soyad
      Yorum