Was wäre ein schneller und eleganter Weg, um die ersten (am wenigsten signifikanten) 2 aufeinander folgenden Bits in einer vorzeichenlosen Ganzzahl zu tauschen?
z. B.
%Vor%Bisher bin ich auf folgendes gestoßen:
%Vor% Meine größte Unzufriedenheit mit der obigen Lösung ist, dass sie die Anweisung if
verwendet.
So würde ich es machen:
%Vor%Meine Lösung gibt 0 zurück, wenn Nummer == 0, während die Funktion der ursprünglichen Frage 1100000000000000000000000000000000000000000000000000000000000000000000 zurückgibt.
Einige Erklärungen: Die Bits von x enthalten 0, wenn das Bit an dieser Position gleich dem nächsten Bit ist, und 1, wenn es anders ist. (x & amp; -x) ist das niedrigstwertige Bit von x, das heißt, die erste Bitdifferenz.
Tags und Links c++ bit-manipulation