Bit Flip-Bit Negation

36 visualizzazioni (ultimi 30 giorni)
Sal
Sal il 29 Ago 2011
Hi, There is a way to do a single or multiple bit flip. For bit flip i mean the negation of only that bit in a decimal number. for example: bitflip(8,2) = 10 this should mean a negation on second bit of 8. Thank You

Risposta accettata

Walter Roberson
Walter Roberson il 29 Ago 2011
bitflip = @(val, n) bitxor(val, 2.^(n-1));

Più risposte (1)

Paulo Silva
Paulo Silva il 29 Ago 2011
d=8; %decimal value
p=2; %position of the bit to flip
b=dec2bin(d); %convert to binary
%b(p)=num2str(~str2num(b(p))); %flip the bit (wrong place)
b(numel(b)+1-p)=num2str(~str2num(b(numel(b)+1-p))); %flip the bit
dbf=bin2dec(b); %convert to decimal and here you have your result

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by