Bit Flip-Bit Negation

4 vues (au cours des 30 derniers jours)
Sal
Sal le 29 Août 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

Réponse acceptée

Walter Roberson
Walter Roberson le 29 Août 2011
bitflip = @(val, n) bitxor(val, 2.^(n-1));

Plus de réponses (1)

Paulo Silva
Paulo Silva le 29 Août 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

Community Treasure Hunt

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

Start Hunting!

Translated by