Dijital Elektronik #Bölüm 7# İkili (Binary) Sayı Sisteminde İşaretli Ve İşaretsiz Sayılar

Öncelikle dijital sistemlerde b0 ve bN-1 (en baştaki ve en sondaki bitler) çok sık kullanıldığı için bunlara özel isimler verilmiştir. b0 biti en düşük basamağa (20 = 1) karşılık geldiği için bu bit değerine “least significant bit” yani en düşük değerlikli bit anlamına gelir, kısaca “LSB” olarak gösterilir. bN-1  bitide en yüksek basamağa (2N-1 ) karşılık geldiği için bu bite de “most significant bit” yani en yüksek değerlikli bit anlamına gelir ve kısaca “MSB” olarak gösterilir.

İşaretsiz Tam Sayılar

Dijital sistemlerde sadece pozitif tam sayıları temsil eden değerlere işaretsiz tam sayılar denir.

Örnek:  (101001)2 = (?)10 ikilik tabanda verilen 101001 sayısının onluk tabanda kaça eşit olabileceğini bulalım?

(101001)2  = ( 1*25 + 0*24 + 1*23 + 0*22 + 0*21 + 1*20 )10 = ( 32 + 0 + 8 + 0 + 0 + 1)10 = (41)10 Örneğe bakıldığında ikilik (binary) tabanda verilen bir sayıyı onluk (decimal) tabanda yazdık. Buradaki sayımız işaretsiz bir sayı olduğu bilindiği için çözümde gösterildiği gibi onluk tabana çevirdik.

İkili tabanda N basamaklı işaretsiz bir tam sayının alabileceği minimum ve
maksimum değerler sırasıyla 0 ve 2– 1′ dir.

Peki eğer sayımızın işaretli bir sayı olduğu bilinseydi ikilik sisteme nasıl gösterebilirdik.

İşaretli Tam Sayılar

Normalde hangi tabanda olursa olsun sayıların pozitif veya negatif olup olmadığını başlarına + veya − işaretleri koyarak belirliyoruz. Fakat dijital sistemlerde elimizde 0 ve 1 bitleri dışında kullanabileceğimiz + veya − sembolleri olmadığına göre yapabileceğimiz tek şey bu semboller yerine yine 0 ve 1 bitlerini işaret olarak kullanmak. Dijital sistemlerde bir sayının pozitif mi negatif mi olduğunu belirlemek için MSB işaret biti olarak kullanılır. Eğer MSB 0 ise bu + işareti; eğer MSB 1 ise bu − işareti anlamına gelecek şekilde işlemler yapılır. İşte tam da bu nedenle, dijital sistemlerde pozitif veya negatif değerler alan tam sayılara işaretli tam sayılar adı verilir.

İşaretli tam sayıları ifade etmek için ;

  • İşaretli büyüklük gösterimi
  • Birlere tümleyen gösterim
  • İkiye tümleyen gösterim olmak üzere üç farklı yöntem kullanılır.

a) İşaretli Büyüklük Gösterimi

Bu gösterim dijital sistemlerde negatif sayıları da ifade edebilmek için kullanılabilecek en doğrudan yöntemdir. Bu gösterim tarzında MSB işaret biti olarak kullanılırken MSB’nin sağında kalan bitler o sayının büyüklüğünü verir.

Bir baytlık veri için işaretli büyüklük gösterimi .

Burada b7 sıfır iken b6 . . . b0 arasındaki bitlerin sayı değeri pozitif, b7 bir iken ise bu bitlerin ifade ettiği sayı değeri negatif kabul edilir.

Örnek: (101001)2  = – (0*24 + 1*23 + 0*22 + 0*21 + 1*20 )10 = (0 + 8 + 0 + 0 + 1)10 = (-9)10

Örnek: (001001)2  = + (0*24 + 1*23 + 0*22 + 0*21 + 1*20 )10 = ( 0 + 8 + 0 + 0 + 1)10 = (+9)10

! İşaretli büyüklük gösteriminde N bitlik bir tam sayının alabileceği minimum
ve maksimum değerler sırasıyla -(2N-1 – 1) ve +(2N-1 – 1)’ dir.

! İşaretli büyüklük gösteriminde 0 sayısı -0 ve +0 olmak üzere iki farklı şekilde gösterilir. Örneğin 0 sayısını 0000 olarak ifade edersek en baştaki işaret bitinden dolayı +0 şeklinde gösterilir. Ama eğer 1000 olarak ifade edersek ilk baştaki işaret bitinden dolayı -0 şeklinde gösterilir.

b) Birlere Tümleyen Gösterim

İşaretli büyüklük gösterimi yöntemi ile dijital devre tasarımı yaparken toplama çıkarma işlemi için ayrı ayrı dijital devreler tasarlanmalıdır. Yani ikilik sistemde iki sayının toplanması için ayrı bir dijital devre tasarımı, iki sayının birbirinden çıkartılması için ayrı bir dijital devre tasarımı yapılmalıdır. Bundan dolayı da dijital devre tasarlamada maliyet ve güç tüketimini artar. Bu durum istenmeyen bir durumdur. Bu durumun önüne geçebilmek için dijital devre tasarımda tümleyen gösterimi yöntemi kullanılmıştır.

Örnek olarak 4-bitlik ikili sayıları ele alalım. Bu sayılar (0000)2 dan başlar (1111)2‘ e kadar olan sayılardır. 2= 16 farklı sayıyı temsil eder. Burada 16 farklı sayıyı sekizer sekizer iki ayrı grup halinde ayıralım. İlk grup (0000)2 ile (0111)2 arasındaki sayıları ifade etsin, ikinci grup ise (1000)2 ile (1111)2 arasındaki sayıları ifade etsin. Burada ki ilk grup pozitif sayıları temsil etsin, ikinci grup ise negatif sayıları ifade etsin. İlk grubun pozitif sayıları ifade etmesinin nedeni ilk grubun “MSB” nin sürekli olarak 0 olması bu da işaretli büyüklük gösteriminde gördüğümüz üzere + sayıları ifade eder. Bundan dolayı ilk grup pozitif sayıları, ikinci grup ise “MSB” den dolayı (“MSB” sürekli 1) – sayıları ifade eder.

Birlere tümleyen yönteminde hem toplama işlemi hem de çıkarma işlemi sadece toplama işlemi ile gerçekleşir. Çıkarmak istediğimiz sayının birlere tümleyenini alıp toplama işlemi yaparız. Fakat bu toplama işlemini yaparken normal toplama işleminden farklı olarak bir yol izlememiz gerekir.

  • Eğer toplam sonucunda en solda bir elde değeri yoksa çıkan sonucu aynen kullanırız.
  • Eğer toplama işleminde en solda bir elde varsa çıkan sonucu elde ile toplayıp kullanırız.

Örnek: Ondalık (6 – 7) işlemini 4-bitlik birlere tümleyen yöntemi ile bulunuz?

6′ nın 4-bitlik ikili gösterimi (0110)2 7′ nin 4-bitlik ikili gösterimi (0111)2 olarak bulunur. Burada (6) + (-7) işlemini yapacağımız için 7′ nin birlere göre tümleyen değerini bulamalıyız. Onluk tabandaki 7′ nin ikilik tabandaki karşılığının tümleyeni (1000)2 olarak bulunur. (Yani sayının değili alınır.)

(0110)2 + (1000)2 = (1110)2 olarak bulunur. Toplama sonucunda solda bir değer olmadığı için çıkan sonucu aynen kullanırız.

“MSB” değeri 1 olduğu için bu sayının değeri negatiftir. Değerini belirlemek için
birlere tümleyenini alırsak sonucun “MSB” değeri 1 olduğu için bu sayının değeri negatiftir. Değerini belirlemek için birlere tümleyenini alırsak sonucun -(0001)2 = -1 olduğunu buluruz.

Örnek: Ondalık (5 – 1) işlemini 4-bitlik birlere tümleyen yöntemi ile bulunuz?

5′ in 4- bitlik ikili gösterimi (0101)2 1′ in 4-bitlik ikili gösterimi (0001)2 olarak bulunur. Burada (5) + (-1) işlemini yapacağımız için 1′ in birlere göre tümleyenini bulmalıyız. Onluk tabandaki 1′ in ikilik tabandaki karşılığının tümleyeni (1110)2 olarak bulunur.

(0101)2 + (1110)2 = elde 1 ve (0011)2 olarak bulunur. En sondaki eldeyi çıkan sonuç ile toplayalım. (0011)2 + (1)2 = (0100)2 .En son bulduğumuz sonucun “MSB” değeri 0 olduğu için sonucumuz pozitiftir ve değeride (0100)2 = 4′ tür.

! Birlere tümleyen gösterimde N bitlik bir tam sayının alabileceği minimum ve
maksimum değerler sırasıyla -(2N-1 – 1) ve +(2N-1 – 1)’ dir.

c) İkiye Tümleyen Gösterim

Birlere tümleyen gösterim dijital devre tasarımlarında bizlere maliyet ve güç açısından avantaj sağlasa da +0 ve -0 olmak üzere iki farklı sıfır değerinin olması dijital devrelerde yapılacak olan işlemler için sorun teşkil eder. Bu iki farklı sıfır oluşumunun önüne geçebilmek için tümleyen değeri temsil edilebilecek maksimum değer yerine bu değerin bir fazlası tümleyen değeri olarak seçilir.

İkiye tümleyen gösterimde sayıların tümleyeni alınırken önce sayının birlere göre tümleyeni (yani değili) alınır ve elde edilen sonuca 1 eklenir.

İkiye tümleyen gösteriminde toplama birlere toplama işlemine göre daha basittir. İkiye tümleyen gösteriminde toplama yapıldıktan sonra elde 1 değeri varsa bu direkt atılır.

Örnek: Ondalık (5 – 1) işlemini 4-bitlik birlere tümleyen yöntemi ile bulunuz?

5′ in 4- bitlik ikili gösterimi (0101)2 1′ in 4-bitlik ikili gösterimi (0001)2 olarak bulunur. Burada (5) + (-1) işlemini yapacağımız için 1′ in ikiye göre tümleyenini bulmalıyız. Onluk tabandaki 1′ in ikilik tabandaki karşılığının ikiye tümleyen gösterimi (1111)2 olarak bulunur.

(0101)2 + (1111)2 = elde 1 ve (0100)2 olarak bulunur. Burada bulduğumuz en soldaki elde atılır. Bulduğumuz sonucum “MSB” değeri sıfır olduğu için sonucumuz pozitiftir ve (0100)2 = 4′ tür.

! İkiye tümleyen gösterimde N bitlik bir tam sayının alabileceği minimum ve
maksimum değerler sırasıyla -2N-1 ve +(2N-1 – 1)’ dir.

! İkiye tümleyen gösteriminde sadece tek bir sıfır olduğu için dijital devre tasarımlarında yaygın olarak kullanılmaktadır.