how to swap two bits in matlab.? which cammond is used for this..?

6 次查看(过去 30 天)
Input: n = 28, p1 = 0, p2 = 3
Output: 21
28 in binary is 11100. If we swap 0'th and 3rd digits,
we get 10101 which is 21 in decimal.

采纳的回答

KALYAN ACHARJYA
KALYAN ACHARJYA 2019-6-11
>> a=de2bi(28)
a =
0 0 1 1 1
Here swap first and Fifth Elements (Change as per your requirements)
>> a([1 5])=a([5 1])
a =
1 0 1 1 0
>> a=bi2de(a)
a =
13
>>
  2 个评论
Sultan Mehmood
Sultan Mehmood 2019-6-12
A=[21 28 54;25 27 54;29 21 76];
d=de2bi(A)
k=1:9;
L=[2,8,3,5,5,3,2,3,7];
P=[5,6,7,7,1,8,2,2,2];
d([L(k) P(k)]) = d([P(k) L(k)]);
B = bi2de(d);

请先登录,再进行评论。

更多回答(1 个)

Chirag Nighut
Chirag Nighut 2019-6-11
Remember that Matlab has 1 based indexing and therfore when you wish to swap the 0th and 3rd bit in above number, it is actually bit number 1 and 4.
Following code should work:
p1 = 1;
p2 = 4;
A = 28;
d = de2bi(A);
d([p1 p2]) = d([p2 p1]);
B = bi2de(d)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by