iconBütün zaman ayarları WEZ +2 olarak düzenlenmiştir. Şu anki saat: 00:42 . | Nüve Foruma Hoşgeldiniz! Forumumuzdan yararlanmak için lütfen Üye Olun !

» Nüve Forum » akademik » Mühendislik Fakültesi » Bilgisayar Mühendisliği Bölümü » Bilgisayar Mimarisi ve Organizasyonu » İkiye Tümleyen

Cevapla
 
LinkBack Seçenekler Stil
  #1  
Alt 25.12.07, 15:44
Standart İkiye Tümleyen

OnR - ait kullanıcı resmi (Avatar)
OnR
Administrator
Üyelik tarihi: Apr 2006
İletiler: 948
Send PM

Bunlara Baktınız mı?

25.12.07, 15:44



Açıklama

n haneli bir N sayısının 2'ye tümleyeni N≠0 için 2n - N ve N=0 için 0 olarak tanımlanır.1'e göre tümleyenle 2'ye göre tümleyen karşılaştırıldığında 2n = [(2n - 1) - N] + 1 olup, 2'ye tümleyen 1'e tümleyenin bir fazlasıdır. Daha basit bir şekilde anlatmak istenirse; 2'ye tümleyeni alınan sayının en düşük anlamlı sıfırları ilk 1 gelene kadar değiştirilmeden bırakılıp, bu 1'den sonraki yüksek anlamlı hanelerde 0'lar 1 ile 1'ler de 0 ile değiştirilir.
Örnek 011010010 sayısının 2'ye tümleyeni 100101110 110011011 sayısının 2'ye tümleyeni 001100101
Eğer burada 2'ye tümleyenini alacağımız sayı kesirliyse, sayıdaki tam ve kesirli kısmı ayıran virgül yokmuş gibi davranılarak sayı bir bütün olarak ele alınır. Tümleyen bulunduktan sonra kaldırdığımız virgülü eski yerine koyarız.
Bugünkü modern bilgisayarlarda 2'ye tümleyenin tercih edilmesinin birçok önemli sebebi vardır.
  • Bir sayının işareti, gösterimindeki yüksek haneli bitin düzenlenmesiyle ifade edilir. buna göre 2'ye tümleyende negatif sayıların yüksek haneli bitinde 1'ler varken, pozitif sayılarinkinde 0 vardır.
  • Bir sayının iki kere üst üste tümleyenini almak orijinal sayıyı verir. Böylelikle negaitf bir sayının negatifini bulmak için özel bir donanım gerekmez.
  • 2'ye tümleyende 0'ın sadece bir gösterimi vardır. Bu da 1'e tümleyende ve işaretli büyüklük gösteriminde oluşan + 0 ve - 0 sorununu ortadan kaldırır.
  • 2'ye tümleyende pozitif ve negaitf iki sayının toplama işleminde (taşmaları atarak) sonuç negatif ise ikiye tümleyen biçimindedir.
  • n bitte 2'ye tümleyenle - (2n-1)'den + (2n-1 - 1)'e kadarki tamsayı değerleri ifade edilebilir. Burada bir simetrinin olmaması 0'ın tek gösteriminden kaynaklıdır.
Negatif Sayıların Gösterimi


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


3 Bitlik Sayıların İşaretsiz, İşaret Bitli, 1'e Tümleyen ve 2'ye tümleyenle Gösterimleri


Negatif sayıların gösteriminde donanımdaki sınırlamalardan dolayı, bit adı verilen ikili sayılardan yararlanılır. İşaretli ya da işaretsiz bütün ikili sayılar bilgisayarda bitlerle ifade edilir. Sayının işaretli olup olmadığı önceden belirlenir. Eğer ikilik tabanda bir sayı işaretli olarak belirlenmişse en soldaki bit sayının işaretini, geri kalan bitler ise sayıyı ifade eder. Eğer sayı işaretsiz olarak belirlenmişse en soldaki bit sayının en anlamlı biti olur.Burada, işaret biti olarak pozitif sayılar için 0, negatif sayılar için ise 1 kullanılır. Örneğin; 0110 işaretsiz ikili sayısı olarak onluk tabanda 6, işaretli olaraksa + 6 anlamına gelir. 1110 ise işaretsiz olarak onluk tabanda 14 iken işaretli olarak - 6'ya eşdeğerdir.
İşaretli Tümleyen Gösterimi

Negatif bir sayı tümleyeni ile de ifade edilebilir. İşaretli büyüklük gösteriminden farklı olarak, işaretli büyüklük gösteriminde bir sayının ters işaretlisi o sayının sadece işaret bitini değiştirerek elde edilirken, tümleyenle gösterimde ise işaret değiştirmek için sayının tümleyeni alınır. Pozitif sayılar herzaman için en solunda 0 biti ile başlayacağından, tümleyeni de bu pozitif sayının negatifi olmak üzere 1 ile başlayacaktır. Buna göre; 2'ye tümleyende bir negatif sayı sayının işaretsiz gösterimindeki her bitin tersinin alınıp bulunan sonuca 1 eklenmesiyle ifade edilir. 12 sayısını ele alırsak, bunun ikilik tabanda 8 bitle gösterildiği durumu inceleyelim. + 12 sayısı en soldaki 0 işaret bitinin ardından 12'nin ikilik tabanda ifade edilmesiyle elde edilir. Buna göre + 12, 00001100'dur. - 12 sayısını üç şekilde ifade edebiliriz:


İşaretli büyüklük gösterimi = 10001100 İşaretli 1'e tümleyen gösterimi = 11110011 İşaretli 2'ye tümleyen gösterimi = 11110100
2'ye tümleyende - 12 bulunurken;
12 : 00001100 Her hanenin tersi alınır: 11110011 Sonuca 1 eklenir : 11110100 + 12 ve - 12 gösterimlerinin toplamı 00001100 + 11110100 = 1000000002dır. Bu 9 bitlik işaretsiz bir sayıdır ve bu sayı da 28 = 256'dır. Ancak biz sonucu 8 bitlik 2'ye tümleyen bir sayı olarak ele alırsak 1'i 8 bitlik hesaplamada oluşan bir taşma biti olarak düşünür ve atarız. Yani sonuç 00000000 = 0'ı elde ederiz. Bu da + 12 ve - 12'nin toplamından bekleyeceğimiz bir sonuçtur.

Aritmetik İşlemler


Aritmetik Toplama

Farklı işaretli 2'ye tümleyen ile ifade edilen iki sayıyı topluyorsak herhangi özel bir işleme ihtiyacımız yoktur. Çünkü bu durumlarda taşma oluşmaz. 2'ye tümleyen biçiminde ifade edilen işaretli negatif iki sayının toplamı, işaret bitleri de dahil olmak üzere iki sayının toplanmasıyla bulunur. İşaret bitlerinin toplanmasıyla oluşan elde atılır. Oluşan sonuç eğer negatifse bu 2'ye tümleyen biçimindedir.
Örnek
Kod:
 00000011    (elde)           00001111    (elde)
    00000110 (+6)                 11111010 (-6)
  + 00001101 (+13)              + 00001101 (+13)
  ===========                   ===========
    00010011 (+19)                00000111 (+7)


   00000011  (elde)              11111001   (elde)
    00000110 (+6)                 11111010  (-6)
  + 11110011 (-13)              + 11110011  (-13)
  ===========                   ===========
    11111001 (-7)                 11101101  (-19)
Buradaki mantık onluk tabanda yaptığımız toplama mantığının aynısıdır. En düşük anlamlı haneden başlayarak toplama işlemleri yapılır, çıkan eldeler bir sonraki basamağa aktarılarak toplama işlemi tamamlanır. Eğer iki pozitif sayının toplamından negatif bir sonuç, iki negatif sayının toplamından pozitif bir sayı çıkıyorsa burada bir taşma söz konusudur. Genel anlamda n bitlik iki sayı ile başlamışsak ve toplamanın sonucu n+1 bitten oluşuyorsa bir taşma var demektir. n bitlik bir sayının başına pozitif sayılar için 0, negatif sayılar için 1 getirerek bit sayısını (n + 1)'e çıkarırız ve toplamı işlemini böyle gerçekleştiririz. Taşmanın oluştuğu bir durum için + 6 ve + 13 sayılarnı 5 bitle ifade edip toplayalım.
Örnek
Kod:
    00110 (+6)
  + 01101 (+13)
  ========
    10011 (-3) (taşma)
Aritmetik Çıkarma

İkilik tabanda çıkarma işlemi onluk tabanda yapılan çıkarma işlemi mantığıyla aynıdır. Eğer çıkarılan hane çıkan haneden daha küçükse, yüksek anlamlı haneden ödünç 1 alınır. Ancak 2'ye tümleyen yöntemiyle çıkarma işlemini yapmak çok daha verimli bir yöntemdir. Buna göre çıkan sayının 2'ye tümleyeni alınıp çıkarılan sayıya eklenerek sonuç elde edilir. + 7'den + 6'yı çıkaralım:
Örnek
Kod:
   0111 (+7)           0111 (+7)
 - 0110 (+6)         + 1010 (-6)
 =======             =======
   0001 (+1)        (1)0001 -> 1 eldesi atılır.
İşaret biti dahil olmak üzere çıkanın 2'ye tümleyeni alınarak işaret biti de dahil olmak üzere çıkarılan sayıya eklnir. İşaret bitinde oluşan elde atılır. Çıkarma işleminde iki sayının da işareti aynıysa bir taşma oluşmaz. Taşmanın oluşacağı durumlar ise şu şekildedir:
  • Pozitif bir sayıdan negatif bir sayı çıkarılınca sonuç negatif oluyorsa
  • Negatif bir sayıdan pozitif bir sayı çıkarılınca sonuç pozitif oluyorsa
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Sponsorlar
Cevapla

Tags
ikiye tumleyen

Seçenekler
Stil

Yetkileriniz
You may post new threads
You may post replies
You may post attachments
You may not edit your posts

BB code is Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık
Gitmek istediğiniz klasörü seçiniz