how to rotate right ?

4 ビュー (過去 30 日間)
yogya
yogya 2014 年 10 月 31 日
コメント済み: Jan 2014 年 11 月 1 日
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 件のコメント
Star Strider
Star Strider 2014 年 11 月 1 日
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 2014 年 11 月 1 日
@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.

サインインしてコメントする。

回答 (1 件)

Harry
Harry 2014 年 11 月 1 日
編集済み: Harry 2014 年 11 月 1 日
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');

カテゴリ

Help Center および File ExchangeGeographic Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by