Clear Filters
Clear Filters

How can i flip specific bit of an binary array.

15 views (last 30 days)
suppose i have a=[1 0 1] and i want to flip the 2nd position bit then i can do by a([2])=~a([2]). but let if a = [1 0 1; 0 1 1; 1 0 0; 1 0 1](large matrix of binary numbers] then , how can a specific bit can be flipped.

Accepted Answer

James Tursa
James Tursa on 12 Dec 2016
E.g., the bit in the (2,3) position:
a(2,3) = ~a(2,3);
  2 Comments
Anmol Shah
Anmol Shah on 5 Apr 2019
I am trying this code but getting the error
"Conversion to char from logical is not possible."
I'm using the below commands
z=(dec2bin(20))
z(1,1) = ~z(1,1);
James Tursa
James Tursa on 5 Apr 2019
Edited: James Tursa on 5 Apr 2019
The ~ operator is appropriate for logical or numeric variables. For char variables that you know to contain only '0' and '1' characters, you could just do the following:
z(1,1) = '0'+'1'-z(1,1);
The expression on the rhs is double, but will be converted back into char as a result of the indexed assignment on the lhs. If you are not doing an indexed assignment, you may need to wrap the expression in the char( ) function:
char('0'+'1'-z(1,1))

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!