SORU
15 HAZİRAN 2011, ÇARŞAMBA


Çarpma ve bölme C shift operatörleri kullanarak aslında daha hızlı?

Çarpma ve bölme bit operatörleri kullanarak, örneğin elde edilebilir

i*2 = i<<1
i*3 = (i<<1)   i;
i*10 = (i<<3)   (i<<1)

ve benzeri.

Aslında doğrudan i*10 (i<<3) (i<<1) say 10 ile çarpmak için kullanmak daha hızlı mıdır? Ya da bu şekilde çarpılır ayrılabilir. giriş herhangi bir tür var mı?

CEVAP
15 HAZİRAN 2011, ÇARŞAMBA


Kısa cevap: muhtemelen hayır.

Uzun cevap: Derleyici hedef işlemci mimarisi yetenekli olarak hızlı bir şekilde çarpmayı bilen bir doktoru vardır. Senin en iyi bahistir söyle derleyici niyetinizi açıkça (yani ben*2 yerine ben << 1) Bu karar ne hızlı montaj/makine kod dizisi. İşlemci kendisi değişimler dizisi olarak çarpma talimat hayata geçirdi ve mikro kodları ekler bu mümkün değil.

Sonuç olarak .. çok zaman bu endişelenmen gerekmiyor. Eğer kayma ne demek, vardiya. Eğer çoğalmaya kastediyorsan, çarpın. Ne anlamsal iş arkadaşlarınız size sonra teşekkür eder en net şey yap. Ya da daha büyük olasılıkla, eğer bunu yaparsanız aksi takdirde daha sonra küfür ediyorsun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kap Slap

    Kap Slap

    8 Mart 2010
  • Santozz Yazz

    Santozz Yazz

    23 Mart 2014
  • YAN TV

    YAN TV

    20 EKİM 2011