Bilgisayar Mühendisliğine Giriş Yrd. Doç. Dr. Hüseyin POLAT
Bilgisayar Mühendisliğine Giriş Konular Tümleyen Aritmetiği
Tümleyen Aritmetiği Sayısal bilgisayarlarda, çıkarma işlemini gerçekleştirmek ve negatif sayıların elektronik olarak saklanmasında Tümleyen Aritmetiği kullanılır. Tümleyen aritmetiği çesitleri, daha genel tabir ile, ‘r’ tabanlı bir sayı sisteminde ‘r tümleyeni’ ve ‘r-1 tümleyeni’ olarak ifade edilebilir.
Tümleyen Aritmetiği ‘r’ Tümleyen Aritmetiği : r tabanlı bir sayı sisteminde, n basamaklı pozitif bir tamsayı N ile temsil edilirse, N sayısının r tümleyeni rn-N (N0) olarak tanımlanabilir. Örnek : (52520)10 sayısının r tümleyenini (onlu sayı sistemi olduğundan 10 tümleyenini) bulunuz. Verilen sayıda basamak sayısı: n=5 ve taban: r=10 olduğundan; sayının r tümleyeni: rn-N = 105-52520 = 47480 olarak bulunur.
Tümleyen Aritmetiği Örnek: (0.3267)10 sayısının 10 tümleyenini bulunuz. Verilen sayıda tam sayı kısmı bulunmadığından basamak sayısı; rn=10n = 100 = 1 olarak alınır ve sonuç olarak; rn-N = 1-0.3267 = (0.6733)10 sayısı bulunur. Örnek : (25.639)10 sayısının 10 tümleyenini bulunuz. Tam sayı kısmı 2 basamaklı olduğundan sayının ‘r’ tümleyeni; r=10, n=2 ve N=25.639 değerleri ile; rn - N = 102-25.639 = 74.361 olarak bulunur.
Tümleyen Aritmetiği İkili (binary) sayılarda tümleyen aritmetiği : İkili sayılarda iki çeşit tümleyen aritmetiği mevcuttur: 1’e tümleyen ve 2’ye tümleyen 1’e tümleyen; (2n-N-1) (r-1 tümleyen) ve 2’ye tümleyen; (2n-N) (r tümleyen) formülleri ile ifade edilir. 'n' değeri verilen N sayısındaki basamak sayısıdır.
Tümleyen Aritmetiği Bugünkü modern bilgisayarlarda 2'ye tümleyenin tercih edilmesinin sebepleri: Bir binary 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 varken, pozitif sayılarda 0 vardır. Bir sayının iki kere üst üste tümleyenini almak orijinal sayıyı verir. Böylelikle negatif bir sayının negatifini bulmak için özel bir donanım gerekmez.
Tümleyen Aritmetiği 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 negatif 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.
Tümleyen Aritmetiği Örnek : (101100)2 sayısının 2’ye tümleyenini bulunuz. Sayı ikili sistemde olduğundan, r=2 ve sayı 6 basamaklı olduğundan n=6 değerleri bulunur. Verilen ikili sayının ‘r’ tümleyeni olarak; (26) - (101100)2 1000000 -101100 ------------- 010100 değeri bulunur.
Tümleyen Aritmetiği İkili sayı sistemindeki bir sayının 2’ye tümleyenini bulmanın pratik yolları; Yöntem1: Sayıya sağdan bakarak ilk 1’e kadar olan sayıları olduğu gibi bırakmak (1 dahil), diğer bitlerdeki değerlerin tersini almaktır (1 ise 0, 0 ise 1 yazmak). 101100 010100 Sayının 2’ye tümleyeni Yöntem2: 1. Adım : 1’e tümleme (0 yerine 1, 1 yerine 0 konur) Örnek sayı 101100 1’e tümleyeni 010011 2. Adım : sayının 1’e tümlenmişine 1 eklenir Sayının 2 tümleyeni 010100
Tümleyen Aritmetiği Örnek : (0.0110)2 sayısının 2 tümleyenini bulunuz. Verilen ikili sistemdeki sayının tam sayı kısmı bulunmadığından; sayının 2 tümleyeni; 20-N= 1 - 0.0110 = (0.1010)2 olarak bulunur. 1.0000 -0.0110 ---------- 0.1010
Tümleyen Aritmetiği ‘r’ tümleyen aritmetiği ile çıkarma : ‘r’ tabanındaki iki pozitif sayının ‘M-N’ işlemi ; 1. İki sayıyı çıkarma yerine M sayısının kendisi ile N sayısının ‘r’ tümleyeni toplanır. 2. Toplama sonucunda elde edilen değer incelenir: a) Eğer en soldaki basamakların toplanması sonucunda elde değeri oluşursa (işaret biti), bu değer atılır. Bulunan sonucun ‘(+) pozitif’ olduğu kabul edilir. b) Eğer elde değeri oluşmazsa, toplama sonucunda elde edilen değerin ‘r’ tümleyeni alınır ve bulunan değerin önüne ‘(-) eksi’ işareti konulur.
Tümleyen Aritmetiği Örnek : 10 tümleyenini kullanarak, (72532 – 3250) = ? işlemini yapınız. M=72532 N=03250 10 tümleyeni N=96750 72532 + 96750 = elde 1 69282 İşaret biti 1’dir ve bu durumda sonuç; + 69282 olarak bulunur.
Tümleyen Aritmetiği Örnek : (03250)10 – (72532)10 = ? işlemini ‘r’ tümleyen aritmetiği yöntemi ile yapınız. M = 03250 N = 72532 10 tümleyeni = 27468 03250 + 27484 = elde yok 0 30718 Bu durumda 30718 sayısının ‘r’ tümleyeni alınır. Sonuç olarak; -69282 değeri bulunur.
Tümleyen Aritmetiği Örnek : (1010100)2- (1000100)2= ? işlemini ‘r’ tümleyen aritmetiği yöntemi ile yapınız. M= 1010100 N= 1000100 2 tümleyeni 0111100 1010100 + 0111100 = elde 1 0010000 Sonuç olarak; (0010000)2 değeri bulunur.
Tümleyen Aritmetiği Örnek : (1000100)2- (1010100)2= ? işlemini ‘r’ tümleyen aritmetiği yöntemi ile yapınız. M = 1000100 N = 1010100 2 tümleyeni = 0101100 1000100 + 0101100 = elde yok 0 1110000 Bulunan sonucun ‘r’ tümleyeni alınır. Sonuç ; (- 0010000)2 olarak bulunur.
ÖDEV : Aşağıda verilen çıkarma işlemlerini 2 tümleyen (r tümleyen) aritmetiği ile gerçekleştirerek sonuçlarının doğruluğunu ispatlayınız. (11001) - (00101) = 10100 (11001) - (11100) = -00011
Tümleyen Aritmetiği ‘r-1’ Tümleyen Aritmetiği : r tabanına göre verilen ve yalnızca tam sayı kısmı bulunan pozitif bir n sayısının ‘r-1’ tümleyeni; ‘rn-N-1’ formülüyle, ‘n’ basamaklı tam sayı ve ‘m’ basamaklı kesirli kısmı bulunan bir sayının ‘r-1’ tümleyeni; ‘rn-r-m-N’ formülü ile bulunabilir. Örnek : (52520)10 sayısının ‘r-1’ tümleyenini (‘9’ tümleyeni) bulunuz. Sayının yalnızca tam sayı kısmı bulunduğundan, ‘rn-N-1’ formülü uygulanabilir. Taban r = 10 ve basamak sayısı n = 5 olduğuna göre ilgili formülden sonuç; rn-N-1 = 105-52520-1=47479 olarak bulunur.
Tümleyen Aritmetiği Örnek : (0.3267)10 sayısının ‘r-1’ tümleyenini bulunuz. Sayının tam sayı ve kesirli kısmı bulunduğundan ilgili formül uygulanırsa; rn-r-m - N = 100 - 10-4 - 0.3267 = 1-0.0001-0.3267 = 0.9999 - 0.3267 = 0.6732 değeri bulunur.
Tümleyen Aritmetiği Örnek : (101100)2 sayısının ‘r-1’ tümleyenini (1 tümleyeni) bulalım. Verilen sayı ikili sistemde olduğundan r=2 ve sayıda 6 basamak bulunduğundan r=2 ve n=6’ dır. Bu durumda, 2n-N-1=26-101100-1=1000000-101100-1 = (010011)2 değeri bulunur. Basit yöntem : 1’e tümleme (0 yerine 1, 1 yerine 0 konur) Örnek sayı 101100 1’e tümleyeni 010011
Tümleyen Aritmetiği Örnek : (0.0110)2 sayısının 1 tümleyenini bulunuz. İkili sistemdeki sayıda tamsayı kısmı bulunmadığından n=0 ve kesirli kısım 4 basamaklı olduğundan m=4’ dür. (2n - 2-4 - 0.0110) = (1-0.0001 - 0.0110) = (0.1111-0.0110)2 = (0.1001)2 olarak bulunur.
Tümleyen Aritmetiği Örnek : 1'tümleyeni (0.1011)2 olan sayının 2 tümleyenini bulunuz. 1 tümleyeni verilen sayının ‘2’ tümleyeni bulmak için önce eklenmesi gereken sayı bulunur. Eklenmesi gereken sayı; r-m = 2-4 = 0.0001 olduğundan ‘2’ tümleyeni; 0.1011 + 0.0001 0.1100 olarak bulunur.
Tümleyen Aritmetiği ‘r – 1’ Tümleyen Yöntemi ile Çıkarma : ‘r’ tabanında iki pozitif sayının M-N işlemi (r-1 tümleyeni yöntemi ile); 1- M sayısının kendisi ile N sayısının ‘r-1’ tümleyeni toplanır. 2- Toplama sonucunda bulunan değerin taşma (işaret) biti kontrol edilir. a- Eğer taşma biti oluşursa (işaret biti 1), bulunan değere 1 değeri eklenir. b- Eğer taşma biti oluşmazsa (işaret biti 0), toplama sonucunda elde edilen sayının ‘r-1’ tümleyeni alınır ve önüne (-) işareti konur.
Tümleyen Aritmetiği ‘r – 1’ Tümleyen Yöntemi ile Çıkarma : Örnek : (72532)10 – (03250)10 işlemini ‘r-1’ tümleyenine göre yapınız. İşlemi yapabilmek için önce çıkarılan sayının ‘r-1’ tümleyeninin bulunması gerekir. Bulunan bu değer ile ‘M’ sayısı toplanır. M=72532 N=03250 tümleyeni ⇒ 96749 72532 + 96749 = (taşma /işaret biti) 1 69281 işaret biti ‘1’ olduğundan sonuca ‘1’ eklenir. Bu durumda, 69281 + 1 = (69282)10 değeri bulunur.
Tümleyen Aritmetiği ‘r – 1’ Tümleyen Yöntemi ile Çıkarma : Örnek : (03250)10 – (72532)10 işlemini ‘r-1’ tümleyenine göre yapınız. M= 03250, N= 72532 9 tümleyeni ⇒ 27467 03250 + 27467 = (taşma yok) 0 30717 İşaret biti değeri ‘0’ olduğundan, sonucun 9 tümleyenini alıp, önüne eksi(-) işareti eklemek gerekir. Sonuç ; (- 69282)10 olarak bulunur.
Tümleyen Aritmetiği ‘r – 1’ Tümleyen Yöntemi ile Çıkarma : Örnek : (1010100)2 – (1000100)2 işlemini (r-1) tümleyenine göre yapınız. M= 1010100 N= 1000100 N’nin 1 tümleyeni ⇒ 0111011 1010100 + 0111011 = taşma var 1 0001111 Sonuca ‘1’ eklenmesi gerekir. 0001111 + 1 = 00010000 Bu durumda sonuç; (10000)2 olarak bulunur.
Tümleyen Aritmetiği ‘r – 1’ Tümleyen Yöntemi ile Çıkarma : Örnek : (1000100)2 – (1010100)2 işlemini (r-1) tümleyenine göre yapınız. M = 1000100, N = 1010100, N’nin (r-1) tümleyeni = 0101011 1000100 + 0101011 = taşma yok 0 1101111 işaret biti = 0’dır. Bu durumda sonuç (-) işaretlidir; İşlemin ‘r-1’ tümleyeni alınır ve önüne (-) işareti konur Sonuç (-0010000)2 olarak bulunur.