1

我得到了这个代码

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允许你生成所有可能的“状态”?我不太确定我是否真的理解 bitand 背后的逻辑,除了搜索它比较的值是否具有bit = 1,因此ans=1

4

1 回答 1

1

bitand 取 2 个值,将它们转换为二进制,在两个值之间进行逻辑与,并将逻辑与的结果作为十进制数返回。所以对于 2 个给定的数字,它只返回一个值

于 2012-07-11T09:25:04.540 回答