Nächste Zweierpotenz finden
-
Hallo!
Ich habe eine Zahl x und möchte die nächstgrößere Zweierpotenz y finden.
Also
Wenn x = 1, dann y = 2
Wenn x = 6, dann y = 8
Wenn x = 1025, dann y = 2048usw.
Wie mache ich das am besten(Pseudocode oder c++)?
MfG
Dudeldu
-
Hab die Lösung schon(natürlich ein paar Minuten nach dem posten)
y = pow(2, ceil(log2(x)));
-
Falls dies nicht nur um die reine Mathematik geht, sondern um eine effiziente Implementierung im Computer, guck mal hier:
https://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2Float
https://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
-
Es gaebe da auch noch BSR:
http://x86.renejeschke.de/html/file_module_x86_id_20.html