2011-02-24 18 views
6

C kitap okuyorum. Aritmetik İfade bölümünde, diyorlar:Neden bölümleme işlemi genellikle bilgisayarda daha fazla kaynak kullanır?

"Bölüm genellikle daha fazla kaynak kullanır. Bölmeyi önlemek için bölmek yerine çoğalırız. Örneğin, 2.0 ile bölmek yerine 0,5 ile çarpıyoruz."

Neden Bölüm genellikle daha fazla kaynak kullanır? Bana detay açıklaması olan var mı lütfen?

Çok teşekkürler.

+1

Neleri incelemeniz gereken farklı işlemcilerdeki ALU'ların bölümleri nasıl uyguladığıdır. –

+2

Geçerli C derleyicilerinin normalde sizin için en uygun mikro optimizasyonu yapacağını aklınızda bulundurun. – nos

+0

@nos - Genellikle yalnızca optimizasyonlar etkinken; Bazı insanlar bu şeyi DEBUG modunda ölçüyor ve yanlış fikir ediniyorlar. – Josh

cevap

6

İkili Çarpma köylü algoritması kullanarak basittir - Eğer temelde sonra toplamı shift: Bu çok çıkarma dizisi (uzun bölünme gibi okulda yapmış olabilir) var gibi http://en.wikipedia.org/wiki/Multiplication_algorithm#Peasant_or_binary_multiplication

İkili Bölümü çok daha zordur. Ana algoritma sınıfı 'radix' olarak adlandırılır ve burada bir örnek görebilirsiniz: http://www.bearcave.com/software/divide.htm

Unutmayın - önce ölçün, ardından optimize edin. Sorunlu etki alanıyla eşleşen kodun, hali hazırda optimize edilmiş olan kodla eşleşmesi çok daha kolaydır.

İlgili konular