Hintere N Bits in long long umdrehen
-
Gibt es eine schnelle Variante, die letzten N Bits einer Zahl umzudrehen?
BeispielN = 10 (0 < N <= 64) Zahl = XXXX XX11 0011 0101 Gedreht = XXXX XX10 1011 0011 (Die Stellen mit X sind irrelevant, kann auf 0 angenommen werden)Ich habe das mit einer Schleife gelöst, die einzelne Bits extrahiert und an der entsprechenden Position der neuen Zahl setzt, aber das kommt mir umständlich und langsam vor.
Gibt es schöne Bittricks dafür?
-
Ich denke, hier http://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel kannste ansetzen.
-
volkard schrieb:
Ich denke, hier http://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel kannste ansetzen.
Super Seite, danke!
Leider gehen die "Hacks" nur für Zweierpotenzen, ich brauche aber beliebige N.
Das bringt mich auf die Idee, einfach alle 64-Bit zu reversen und dann um 64-N Bits nach rechts zu schifften. Ich glaube, so werde ich es machen.