Floating point ile ilgili soru

Başlatan yamak, 23 Aralık 2011, 01:24:33

yamak

Floating point unit işlemcinin küsüratlı sayılarla işlem yapan birimi değil mi? Pic ile
float f=2.421,x=5.541,sonuc;
int i;
sonuc=f*x;
i=(int)(sonuc*10);
işlemini yapabiliyorum. Bu pic te FPU olduğunu mu gösteriyo.
Ama aynı işlemi benim lpc1768 ile yapamıyom. Pic in yapabildiğini koskoca ARM işlemci yapamıyo mu? Yoksa benim kaçırdığım biyerler mi var?

yamak

Hocam şimdi floating point unit olmayan bi işlemcide mesela 2,21454*4,5566654 işlemini yapamaz mıyım?
Ek: Pic te bende de 134 dönüyo ama lpc1768 de yaparken keil hata veriyo.

yamak

Tamam hocam şimdi farkettim kodu yanlış yazmışım :) . Peki ben bu işlemi yapabiliyosam FPU olan bi işlemcide ekstra olarak ne yapabilirim.

z

float f=2.421,x=5.541,sonuc;
int i;
sonuc=f*x;
i=(int)(sonuc*10);

İşlemcinin bu işlemi yapabiliyor olması, işlemcinin Floating Processor'a sahip olduğu anlamına gelmez.

Çünkü derleyici, bu işlemi CPU'ya standart işlemci komutları ile de hesaplatabilir. Bu tip fonksiyonlar kütüphanelerde hazır olarak mevcuttur. Bunun için, gerekiyorsa ilgili kütüphanenin ihtiyaç duyacağı header dosyayı programın başına tanımlamamız yeterli olacaktır.

Eğer işlemcinin FPU birimi varsa bu kez derleyici, uzun uzun CPU komutlarıyla oluşturulmuş kütüphane fonksiyonlarını işletmek yerine çok daha az zamanda sonucu verecek donanımsal hesaplama ünitesinden yararlanır.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

yamak

Alıntı Yapfarkı görebiliyormusunuz?
Fazlasıyla :). Teşekkür ederim yanıtlar için.