how to swap two bits in matlab.? which cammond is used for this..?
10 views (last 30 days)
Show older comments
Sultan Mehmood
on 11 Jun 2019
Commented: Sultan Mehmood
on 12 Jun 2019
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.
0 Comments
Accepted Answer
KALYAN ACHARJYA
on 11 Jun 2019
>> 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
>>
More Answers (1)
Chirag Nighut
on 11 Jun 2019
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)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!