BifaceMcLeOD The HighGlandeur | chrisbk a écrit :
etant donne qu'il pense multiplié par 0.5, je présuppose qu'il travaille sur des floats, donc ton idee me parait pas super brillante, ceci dit sans vouloir te vexer
|
Il n'empêche que l'idée est bonne : il suffit d'incrémenter ou de décrémenter l'exposant (selon que l'on multiplie ou que l'on divise par 2).
Mais pour répondre à la question première de cdr, il vaut mieux laisser la multiplication, car contrairement à ce que dit JagStang, le CPU sait diviser (par contre, la soustraction n'existe effectivement pas car le CPU se contente de faire des additions sur les nombres signés).
Un petit test rapide pour donner un ordre de grandeur. Sur ma machine, les instructions suivantes prennent le temps suivant :
- myDouble /= 2.0; 23 ns.
- myDouble /= 2; 86 ns.
- myDouble *= 0.5; 8 ns.
(instructions répétées un milliard de fois)
Même si les mesures ne sont pas très précises, elles donnent un irdre de grandeur significatif. |