A seconda della domanda Floating point division vs floating point multiplication. La divisione è più lenta della moltiplicazione a causa di alcuni motivi.Il compilatore ottimizzerà la divisione in moltiplicazione
Il compilatore, di solito, sostituirà la divisione per moltiplicazione se è possibile?
Ad esempio:
float a;
// During runtime a=5.4f
float b = a/10.f;
Sará:
float a;
// During runtime a=5.4f
float b = a*0.1f;
Se si considera domanda affidabile un compilatore, Sto usando VS2013 compilatore di default. Tuttavia, sarebbe bello se avessi una risposta generica (validità teorica di questa ottimizzazione)
Il compilatore non dovrebbe fare una divisione per poter moltiplicare per il reciproco? – NathanOliver
Questo non è il caso incluso in "se possibile", questo è un caso in cui non è possibile a meno che non venga accettata una perdita di precisione. Quindi, si spera solo quando si compila con una bandiera che lo consente specificamente. – harold
@NathanOliver compile tempo uno .. non farà male –