Determine qué bit único en el byte se establece
tengo unbyte
Estoy usando para bitflags. Yo sé esouno y solo uno poco en elbyte
Se establece en cualquier momento dado.
Ex:unsigned char b = 0x20; //(00100000) 6th most bit set
Actualmente utilizo el siguiente bucle para determinar qué bit se establece:
int getSetBitLocation(unsigned char b) {
int i=0;
while( !((b >> i++) & 0x01) ) { ; }
return i;
}
¿Cómo puedo determinar de manera más eficiente la posición del bit establecido? ¿Puedo hacer esto sin iteración?