Invertir Bits
Este problema consiste en invertir los bits de un entero de 32 bits con signo.
Solución
class Solution {
public:
int reverseBits(int n) {
int res{0};
for (int i{0}; i < 32; i++) {
int par = n % 2;
n /= 2;
res = res << 1;
res += par;
}
return res;
}
};
Se recorren exactamente 32 bits. En cada paso se toma el bit menos significativo de n (su paridad), se desplaza n a la derecha para descartarlo y se desplaza el resultado a la izquierda para hacer espacio, agregando el bit al final. Al terminar las 32 iteraciones el resultado tiene el orden invertido.