¿Existe una función en la biblioteca de Apple que pueda invertir el orden de los bits en un corto?

0000 0011 -> 1100 0000

Gracias de antemano.

Método utilizado:

unsigned int  NO_OF_BITS = sizeof(num) * 8;
unsigned int reverse_num = 0;
int i;
for (i = 0; i < NO_OF_BITS; i++)
{
    if((num & (1 << i)))
        reverse_num |= 1 << ((NO_OF_BITS - 1) - i);
}

Fuente: http://www.geeksforgeeks.org/archives/726

0
JavaCake 8 may. 2012 a las 16:43
Bueno, ¿qué quieres decir con "voltear los bits". Por lo general, esto significa cambiar todos los 0 a 1 y viceversa (es decir, 0000 0011 -> 1111 1100) pero no parece que eso sea lo que está buscando
 – 
Sean
8 may. 2012 a las 16:46
No estoy hablando de enmascarar no ...
 – 
JavaCake
8 may. 2012 a las 16:47
Eso tampoco es de lo que estaba hablando. ¿Parece que quizás estás intentando cambiar el orden de los bits? ¿Como en, de izquierda a derecha?
 – 
Sean
8 may. 2012 a las 16:50
@Sean, exactamente. Quizás debería cambiar el título
 – 
JavaCake
8 may. 2012 a las 16:50

1 respuesta

La mejor respuesta

Parece que está intentando invertir la secuencia de bits del byte dado.

Hay muchas formas de hacer esto de manera eficiente. Eche un vistazo a http://graphics.stanford.edu/~seander/bithacks. html # BitReverseObvious

Este sitio contiene muchos trucos para trabajar con bits.

3
Community 20 jun. 2020 a las 12:12