float log2(int)
-
Servus,
gibt es einen effizienten Algorithmus, um log2 nur auf der Basis von Multiplikation (auch Bitshift), Addition berechnet?
Also nicht:
log(x) / log(2)
Folgendes tut es ja nur näherungsweise:
float fe_log2(int x) { int y = x; int actLog = 0; for (;y > 0; y >>= 1) actLog ++; return actLog; }
/Dirk
-
tu dir mal das flieskommazahlenformat angucken tun.
die mantisse sollte dich schonmal bis auf 2 größenordnungen ranbringen. rest mir 2 if-schleifen?
-
Kannst du das etwas präzisieren? Du scheinst zumindestens den Algorithmus dafür schon im Kopf zu haben.