how to rotate right ?

8 vues (au cours des 30 derniers jours)
yogya
yogya le 31 Oct 2014
Commenté : Jan le 1 Nov 2014
If my binary data is 1001011011110100 then how can i rotate right the stream by 4 bits with out converting it from binary to any other data type or number system.
  3 commentaires
Star Strider
Star Strider le 1 Nov 2014
I answered it yesterday (circshift link + example) then OP posted a later question using my answer to this one without accepting it, so I deleted my answer.
Jan
Jan le 1 Nov 2014
@yogya: Please explain the type of the data. It is not efficient to guess, how your "binary data" are represented currently, when you explicitly want to avoid a conversion.

Connectez-vous pour commenter.

Réponses (1)

Harry
Harry le 1 Nov 2014
Modifié(e) : Harry le 1 Nov 2014
If your binary data is stored in a string, try this:
x = '1001011011110100';
x_shifted = circshift(x,[0,4]);
Otherwise, if you have raw binary data (for example, stored in unsigned 16-bit integers), then try this:
msbs = bitshift(n,-4, 'uint16');
lsbs = bitand(n,2^4-1, 'uint16');
x_shifted = bitor(bitshift(lsbs, Nbits-4, 'uint16'), msbs, 'uint16');

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by