バイナリ列挙法ビットコンピューティング

まず第一に、あなたは基本的な演算ビット演算を知っておく必要があります。

私は<< I倍、すなわち、2進数後方Iゼロ加え2により行わ表す
1 << == ^ 3 * 2 * 3 * 2 1 2 2 == == == 8>( 1000)== 2(8)10 
。11. 1 << 22 == ==>(11010)== 2である(22)と10

A >> iはi番目の右側に加えて、バイナリ番号2、すなわちを行っ表しますiビット
11 11 >> 1 == / 5 == == 2(101)== 2(5)10

バイナリ列挙(1)

= 11 INT; 
(I ++は; Iは<4。I = 0の整数)のための
(1 "%のD"、I&A >>)のprintf; //各番号の最後に得られた動作1の数は1/0であり、

1011年101 101
・1・1・1・1
------ == "== ----" ---- ==「----
0001 001 01 1

GETは1,1,0でありますすなわち、数のそれぞれの2進数が、逆の順序では、配列に格納することができます

バイナリ列挙(2)

N-INT; 
のために(INT I = 0;私は<(N - << 1)。私は++)//列挙ケース2 ^ N -1の
    のprintf( "%dの"、I )。

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/Theo-sblogs/p/11605121.html