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

2 visualizzazioni (ultimi 30 giorni)
scc28x il 16 Apr 2021
Risposto: Andy Bartlett il 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.
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Hrishikesh Borate il 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));
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Più risposte (2)

Walter Roberson il 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
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Andy Bartlett il 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.
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Fixed Point in Help Center e File Exchange

R2020b

### Community Treasure Hunt

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

Start Hunting!

Translated by