# extract one of the bits in fi(), flip it, and reassemble it to produce new bin

3 views (last 30 days)
scc28x on 16 Apr 2021
Answered: Andy Bartlett on 19 Apr 2021
Hi, I am trying to do the following cleanly in fixed point designer:
Take a binary: '0010'
Flip the 2nd bit to produce: '0000'
Is there a clean way to do this with some opeartion within fi(), perhaps just 1 or 2 lines of code?
I am a new user at fixed-point designer.
Thank you very much.

Hrishikesh Borate on 19 Apr 2021
Hi,
It’s my understanding that you are trying to flip the bit at 2nd position.
Following is the code for the same :-
input = '0010';
bitflip = @(val, n) bitxor(val, 2.^(n-1));
output = dec2bin(bitflip(bin2dec(input),2));

Walter Roberson on 19 Apr 2021
input = '1010';
input(3) = 'a' - input(3)
input = '1000'
... It's magic ;-)
flipped = (1 - (x - '0')) + '0'
flipped = 1 + '0' + '0' - x
flipped = 1 + 48 + 48 - x
flipped = 97 - x
flipped = 'a' - x

Andy Bartlett on 19 Apr 2021
That answer provides a one-liner that works in most cases.
It also provides a more general solution using a helper function.

R2020b

### Community Treasure Hunt

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

Start Hunting!