verdad tabla significativo significant qué peso msb most mayor mas lsb cual binario c bit-manipulation

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 */