Borrar filtros
Borrar filtros

Easy bit reversal

35 visualizaciones (últimos 30 días)
John F
John F el 22 de Feb. de 2012
I need a function to reverse the bits of an int. I see I can flip bytes around, but that doesn't reverse the bit order. Any easy ideas? Thanks.

Respuesta aceptada

Walter Roberson
Walter Roberson el 22 de Feb. de 2012
sum(uint32(bitset(0,1:32,bitget(uint32(X), 32:-1:1))))
(yes, there are other ways, some of them quite short but not necessarily efficient.)
  1 comentario
Oleg Komarov
Oleg Komarov el 22 de Feb. de 2012
In the spirit of Cody: bin2dec(fliplr(dec2bin(10,32)))

Iniciar sesión para comentar.

Más respuestas (2)

John F
John F el 23 de Feb. de 2012
Nice guys. thanks.

John F
John F el 23 de Feb. de 2012
I frown upon looping in Matlab, but this worked for me:
for i = 1:WordLength
h = bitshift(h,1) + bitand(x,1);
x = bitshift(x,-1);
end
x = the original number
h = the bit reversed version of x
If you put a bit of code in front of it to determine the WordLength, it works quite well.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by