# how swap the bits at position L&P of A(I,j).?

3 views (last 30 days)
Sultan Mehmood on 11 Jul 2018
Commented: Guillaume on 20 Jul 2018
k=1;
for I=1:256;
j=1:256;
end
x=0.3;
p=0.343;
for n=2:65536;
if x(n-1)>=0 & x(n-1)<=p
x(n)=x(n-1)/p;
else
x(n)=(1-x(n-1))/(1-p);
end
end
S=(x*255)+1;
Q=0.2;
p=0.343;
for n=2:65536;
if Q(n-1)>=0 & Q(n-1)<=p
Q(n)=Q(n-1)/p;
else
Q(n)=(1-Q(n-1))/(1-p);
end
end
D=(Q*255)+1;
L= mod(S(k),8)+1;
P=mod(D(k),8)+1;
swap??
##### 2 CommentsShowHide 1 older comment
Sultan Mehmood on 11 Jul 2018
i want to swap the bits of L&P of A(I,j). help plzz

Guillaume on 11 Jul 2018
Edited: Guillaume on 18 Jul 2018
bits = bitget(A(i, j), [L, P]);
A(i, j) = bitset(A(i, j), P, bits(1));
A(i, j) = bitset(A(i, j), L, bits(2));
As an aside, I would strongly recommend that you declare x and Q as:
x = [0.3, zeros(1, 65535)];
Q = [0.2, zeros(1, 65535)];
to avoid the constant reallocations that your code is doing.
Guillaume on 20 Jul 2018
bits(1) is the bit that bitget extracted at position L, bits(2) is the bit that bitget extracted at position P.
documentation for bitget
documentation for bitset