yadelim
Üye
- Katılım
- 7 Şub 2013
- Mesajlar
- 48
- Puanları
- 1
örnek kod (c ile):
float bolme (float x , float y)
{
x /= y;
return x;
}
iyi günler.
yukarıda ki örnek kod gibi bir kodu proğramda kullanıyorum. (18f2431, 20 mhz kristal(5m hz işlem hızı)) 912 işlem zamanım olmasına rağmen yukarıdaki ondalıklı bölme yüzünden kod zamanım 1500 'ü geçiyor. kodu çıkardığımda sıkıntı yok 300 civarı komut zamanım oluyor. proğramda (16bit) karşılaştırma, toplama, sola sağa öteleme kullanıyorum bu kadar süre tutmazken neden bu bölme işlemi 1000 komut zamanının üzerinde gerçekleşiyor. 32 bit olduğu için mi alıyor. yaklaşık 600 komut zamanı ile bu ondalıklı bölme işlemini nasıl yaparım? zaman kısıtlaması olduğu için tabiki de assemply ile.
kısaca özetlersem; ondalıklı sayılarla bölme çarpma neden zaman alıyor. bu zaman proplemini nasıl çözebilirim. (virgülden sonraki 8 hane harici önemsiz)
şimdiden teşekkürler.
float bolme (float x , float y)
{
x /= y;
return x;
}
iyi günler.
yukarıda ki örnek kod gibi bir kodu proğramda kullanıyorum. (18f2431, 20 mhz kristal(5m hz işlem hızı)) 912 işlem zamanım olmasına rağmen yukarıdaki ondalıklı bölme yüzünden kod zamanım 1500 'ü geçiyor. kodu çıkardığımda sıkıntı yok 300 civarı komut zamanım oluyor. proğramda (16bit) karşılaştırma, toplama, sola sağa öteleme kullanıyorum bu kadar süre tutmazken neden bu bölme işlemi 1000 komut zamanının üzerinde gerçekleşiyor. 32 bit olduğu için mi alıyor. yaklaşık 600 komut zamanı ile bu ondalıklı bölme işlemini nasıl yaparım? zaman kısıtlaması olduğu için tabiki de assemply ile.
kısaca özetlersem; ondalıklı sayılarla bölme çarpma neden zaman alıyor. bu zaman proplemini nasıl çözebilirim. (virgülden sonraki 8 hane harici önemsiz)
şimdiden teşekkürler.