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すべての可能な「状態」を生成できるのはなぜですか?比較する値にが含まれているかどうかを検索する以外に、ビットの背後にあるロジックを本当に理解しているかどうかはわかりませbit = 1ans=1

4

1 に答える 1

1

bitandは2つの値を取り、それらを2進数に変換し、2つの値の間に論理ANDを作成し、論理ANDから10進数として結果を返します。したがって、指定された2つの数値に対して、1つの値のみを返します。

于 2012-07-11T09:25:04.540 に答える