我获得了此代码
m0=0.8;
m1=1.2;
k=6; %where k can take values between 2 and 10;
kbar=2^k;
g_m = [0:(kbar-1)];
for i = 1: (kbar)
g=1;
for j=0:(kbar-1)
if(bitand(g_m(i),2^j))~=0
g=g*m1;
else
g=g*m0;
end
end
g_m(i)=g %results in a 1xN vector where N = all the possible states
end
我的问题是为什么bitand
的功能允许您生成所有可能的“状态”?
我不太确定我是否真的理解bit和背后的逻辑并且在搜索它所比较的值是否为bit = 1
,因此ans=1
。
答案 0 :(得分:1)
bitand取2个值,将它们转换为二进制,在两个值之间进行逻辑AND,并将结果从逻辑AND返回为十进制数。所以对于2个给定的数字,它只返回一个值