<br>2^n = x ?? Wie kann ich das auflösen ?
-
Original erstellt von JoelH:
Was das Bitzählen angeht, da brauch ich auch eine Schleife für.Stimmt. Sollte aber wohl schneller sein, als die Variante mit dem Logarithmus.
-
iss nicht zeitkritisch
-
Ist aber auch schöner mit Bitschieberei. IMHO.
-
Im WorstCase sind das aber 31 Verschiebungen und 32 Abfragen!
-
Original erstellt von WebFritzi:
Im WorstCase sind das aber 31 Verschiebungen und 32 Abfragen!Jo! Stimmt! ...aber ich denke, dass es länger dauert, einen Logarithmus zu bestimmen. Ich weiß allerdings auch nicht, was da genau gerechnet werden muss. Weiß das einer?
-
bool istZweierpotenz(unsigned int x) {//ungetestet return (x&(x-1))==0; }
-
ich bin immer wieder erstaunt wie erfinderisch Leute sein können, aber wenn ich mir das so anschau ist es logisch und wohl auch extrem schnell.
[Offtopic]Machst eigentlich noch was anderes als solche Codeschnipsel erfinden Volkard ?[/Offtopic]
-
Hey, den kannte ich auch, ohne mir selbst so geniale Gedanken machen zu müssen. Ein Logarithmus kann man bestimmt auch irgendwie annähern, wie das mit sinus ja auch gemacht wird. Da kann es schon sein, dass 32 Bitschiebeoperationen und Abfragen schneller sind...
-
Original erstellt von JoelH:
[Offtopic]Machst eigentlich noch was anderes als solche Codeschnipsel erfinden Volkard ?[/Offtopic]hab den gar nicht erfunden, sondern hab mich dran erinnert.
-
@TheAmarine
Schön für dich dann hätteste ihn ja auch posten könnnen@Volkard
Hauptsache geholfen