iconBütün zaman ayarları WEZ +2 olarak düzenlenmiştir. Şu anki saat: 01:24 . | 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 » Bölme Algoritması

Cevapla
 
LinkBack Seçenekler Stil
  #1  
Alt 25.12.07, 15:46
Standart Bölme Algoritması

25.12.07, 15:46



Bölme algoritmasının temeli ilkokulda öğretilen kalem kâğıt yöntemidir. Bu yöntemin bilgisayara aktarılmasında ardışık toplama, çıkarma ve kaydırmalar vardır. Burada bölme algoritmasının 3 yolundan bahsedilecektir. Bu üç yol birbirinden çok farklı olmamakla birlikte her biri bir öncekine göre iyileştirme vermektedir.




Bölme Algoritması 1.Yol


Şematik olarak yazmaçlar, AMB ve denetim


Bu birinci yolda bölme işleminin yapılması için n bitlik BÖLÜM yazmacı, 2n bitlik KALAN ve BÖLEN yazmaçları, 2n bitle işlem yapabilen bir Aritmetik Mantık Birimi (AMB) ve yapılacak işlemleri denetlemesi için bir DENETİM birimine ihtiyacımız var. Algoritma genel olarak şu şekilde çalışıyor (Daha anlaşılır olması için n=32 ile çalışacağız):
Önce bölünen sayı kalan yazmacına(64 bit), bölen sayı ise bölen yazmacına(64 bit) yazılır. Sonra bölen yazmacındaki sayı kalan yazmacındaki sayıdan çıkarılır (Çıkarma yapılırken ikiye tümleyen yöntemi kullanılıyor). Elde edilen sayı tekrar kalan yazmacına yazılır. Sonra kalan yazmacındaki bu sayının sıfırdan küçük mü yoksa büyük eşit mi olduğu kontrol edilir. Eğer sayı sıfırdan küçük ise, bölen yazmacındaki sayı kalan yazmacına eklenir (Yani kalan yazmacındaki sayı ilk durumuna getirilir). Sonra bölüm yazmacındaki sayı sola bir hane kaydırılarak açıkta kalan birinci bite 0 yazılır (çünkü sayı bölünemedi) ve bölen yazmacı sağa doğru bir hane kaydırılır. Bunun neden yapıldığını sorgulayacak olursak yukarıda verilen kalem kâğıt yöntemine bir göz atalım. Dört hanelik bölen sayı bölünen sayının ilk dört hanesi tarafından bölünebilir durumda değil bu nedenle bölen sayıyı bir hane kaydırıyoruz. Bölen kaydırıldıktan sonra bu yeni sayı kalan yazmacındaki sayıdan tekrar çıkarılır ve ilk yapılan işleme geri dönülür. Eğer sayı sıfırdan büyük eşit ise, bölüm yazmacındaki sayı sola doğru bir hane kaydırılıp birinci bite 1 yazılır (Çünkü sayı bölündü). İkilik tabanda çalışıldığı için bölen sayı bölünenin içinde en fazla bir kez olabilir. Son olarak da bölen sayı sağa doğru bir hane kaydırılır ve ilk yapılan işleme geri dönülür. Yukarıdaki işlemler bir döngü halinde 32 kez tekrarlanır. Yani (n) kez tekrarlanır. Şimdi daha anlaşılır olması için yukarıda anlatılanları bir de algoritmik durum makinelerinde görelim.


Bölme Algoritması 2.Yol


Şematik olarak yazmaçlar, AMB ve denetim


Bu ikinci yolda bölme işleminin yapılması için n bitlik BÖLÜM ve BÖLEN yazmaçları, 2n bitlik KALAN yazmacı, n bitle işlem yapabilen bir Aritmetik Mantık Birimi (AMB) ve yapılacak işlemleri denetlemesi için bir DENETİM birimine ihtiyacımız var. Algoritma genel olarak şu şekilde çalışıyor (Daha anlaşılır olması için n=32 ile çalışacağız):
Önce bölünen sayı kalan yazmacına(64 bit), bölen sayı bölen yazmacına(32 bit) yazılır ve kalan yazmacı bir hane sola kaydırılır(Hatırlanacak olursak 1.yolda bölen yazmacı sağa kaydırılıyordu. Bu 2.yolda onun yerine kalan yazmacı sola kaydırılıyor). Sonra bölen yazmacındaki sayı kalan yazmacındaki sayının sol tarafındaki 32 bitlik sayıdan çıkarılır ve sonuç yine kalan yazmacının sol tarafındaki 32 haneye yazılır. Sonra kalan yazmacındaki bu sayının sıfırdan küçük mü yoksa büyük eşit mi olduğu kontrol edilir. Eğer sayı sıfırdan küçük ise, bölen yazmacındaki sayı kalan yazmacındaki sayının sol tarafındaki 32 bitlik sayıya eklenir(Yani kalan yazmacındaki sayı ilk durumuna getirilir). Sonra bölüm yazmacındaki sayı sola bir hane kaydırılarak açıkta kalan birinci bite 0 yazılır (çünkü sayı bölünemedi). Sonra kalan yazmacındaki sayı sağa bir hane kaydırılarak ilk yaptığımız işleme geri dönülür. Eğer sayı sıfırdan büyük eşit ise, bölüm yazmacındaki sayı sola doğru bir hane kaydırılıp birinci bite 1 yazılır (Çünkü sayı bölündü). Sonra kalan yazmacındaki sayı sağa bir hane kaydırılarak ilk yaptığımız işleme geri dönülür. Yukarıdaki işlemler bir döngü halinde 31 kez tekrarlanır. Yani (n-1) kez tekrarlanır. Şimdi daha anlaşılır olması için yukarıda anlatılanları bir de algoritmik durum makinelerinde görelim.


Bölme Algoritması 3.Yol


Şematik olarak yazmaçlar, AMB ve denetim


Bu üçüncü yolda bölme işleminin yapılması için n bitlik BÖLEN yazmacı, 2n bitlik KALAN yazmacı, n bitle işlem yapabilen bir Aritmetik Mantık Birimi (AMB) ve yapılacak işlemleri denetlemesi için bir DENETİM birimine ihtiyacımız var. Algoritma genel olarak şu şekilde çalışıyor (Daha anlaşılır olması için n=32 ile çalışacağız):
Önce bölünen sayı kalan yazmacına(64 bit), bölen sayı bölen yazmacına(32 bit) yazılır ve kalan yazmacı bir hane sola kaydırılır(Hatırlanacak olursak 1.yolda bölen yazmacı sağa kaydırılıyordu. Bu 3.yolda onun yerine tıpkı 2. yoldaki gibi kalan yazmacı sola kaydırılıyor). Sonra bölen yazmacındaki sayı kalan yazmacındaki sayının sol tarafındaki 32 bitlik sayıdan çıkarılır ve sonuç yine kalan yazmacının sol tarafındaki 32 haneye yazılır. Sonra kalan yazmacındaki bu sayının sıfırdan küçük mü yoksa büyük eşit mi olduğu kontrol edilir. Eğer sayı sıfırdan küçük ise, bölen yazmacındaki sayı kalan yazmacındaki sayının sol tarafındaki 32 bitlik sayıya eklenir(Yani kalan yazmacındaki sayı ilk durumuna getirilir). Sonra kalan yazmacındaki sayı sola bir hane kaydırılarak açıkta kalan birinci bite 0 yazılır (çünkü sayı bölünemedi) (2.yolda burada bölüm yazmacı kaydırılıyordu. Bu yolda ekstra bir bölüm yazmacı kullanılmıyor. Onun yerine kalan yazmacının diğer iki yolda israf edilen sağ 32 hanesi bölümü yazmak için kullanılıyor.). Sonra kalan yazmacındaki sayı sağa bir hane kaydırılarak ilk yaptığımız işleme geri dönülür. Eğer sayı sıfırdan büyük eşit ise, kalan yazmacındaki sayı sola doğru bir hane kaydırılıp birinci bite 1 yazılır (Çünkü sayı bölündü). Sonra kalan yazmacındaki sayı sağa bir hane kaydırılarak ilk yaptığımız işleme geri dönülür. Yukarıdaki işlemler bir döngü halinde 31 kez tekrarlanır. Yani (n-1) kez tekrarlanır. Şimdi daha anlaşılır olması için yukarıda anlatılanları bir de algoritmik durum makinelerinde görelim.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Sponsorlar
Cevapla

Tags
bolme algoritmasi

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