İkiye tümleyen
Vikipedi, özgür ansiklopedi
İkiye tümleyen, negatif sayıları İkili sayılar içerisinde göstermek için kullanılan bir yöntemdir. İlave bir + ve − sembolüne ihtiyaç duyulmaz. Bu özellikle Bilgisayar alanında gereklidir, çünkü bilgisayar çalışma sistemi yalnızca bitlerden, yani 0 ve 1 lerden oluşur. İkiye tümleyen, negatif sayıların bilgisayar tarafından hesaplanmasında kolaylık sağlar.
Negatif sayıların ikili kodlanması esnasında ikiye tümleme metodu kullanılmadığı taktirde, hem sayının işareti için ayrı bir bit harcanması gerekir. Birbirinden farklı işarete sahip birden fazla 0 sayısının oluşmasına sebep olur. Bitlerin değerlerini ve anlamlarını değerlendirecek bir yönetim-denetim mekanizması kullanılması gerekir.
Konu başlıkları |
[değiştir] 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
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.
[değiştir] Negatif Sayıların Gösterimi
[değiştir] İşaretli Büyüklük Gösterimi
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.
[değiştir] İş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:
2'ye tümleyende - 12 bulunurken;
+ 12 ve - 12 gösterimlerinin toplamı 00001100 + 11110100 = 100000000'dı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.
[değiştir] Aritmetik İşlemler
[değiştir] 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
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
00110 (+6)
+ 01101 (+13)
========
10011 (-3) (taşma)
[değiştir] 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
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
[değiştir] Tamsayı Aritmetiği
Çarpıcılar Çarpma işlemi iki şekilde yapılabilir:
• Donanım ile çarpma
• Yazılım ile çarpma
Donanım ile çarpma işlemi: İki bitlik iki sayının çarpımı
Yazılım ile çarpma işlemi: Aşağıda işaretsiz çarpma işlemi için yazılım algoritması verilmiştir.
[değiştir] Kaynaklar
- Mano, M.Morris(2001). Digital Design ISBN: 975-8431-29-3
- Patterson and Hennessy. Computer Organization and Design: The Hardware/Software Interface, Third Edition
- en:wiki
- [1]
| Bu madde ya da bir kısmı, Vikipedi standartlarına uygun değildir ve bu nedenle düzenlenmesi gerekmektedir. Maddeyi Vikipedi standartlarına uygun biçimde düzenleyip, geliştirerek Vikipedi'ye katkıda bulunabilirsiniz. NOT:Gerekli değişiklik yapılmadan bu şablon kaldırılmamalıdır. Bu madde Aralık 2007 tarihinden beri, düzenleme isteğiyle etiketlidir. |

