tabla - ¿Cómo puedo obtener la posición del bit menos significativo en un número?
most significant byte (2)
Estoy trabajando en un proyecto de programación y una de las cosas que debo hacer es escribir una función que devuelva una máscara que marque la posición del bit 1 menos significativo. ¿Alguna idea sobre cómo puedo determinar la posición utilizando operadores bitwise?
ex:
0000 0000 0000 0000 0000 0000 0110 0000 = 96
What can I do with the # 96 to turn it into:
0000 0000 0000 0000 0000 0000 0010 0000 = 32
¡He estado golpeando mi cabeza contra la pared durante horas tratando de resolver esto, cualquier ayuda sería muy apreciada!
Un código más legible:
int leastSignificantBit(int number)
{
int index = 0;
while ((~number) & 1) {
number >>= 1;
index++;
}
return 1 << index;
}
x &= -x; /* clears all but the lowest bit of x */