#include
#include
#include
using namespace std;
int main(){
// 2のD乗 の選択肢を ビットで計算する
int D = 4;
for (int mask = 0; mask < (1 << D); ++mask){
int s = 0, num = 0, rest_max = -1;
string bi = "";
for (int i=0; i < D; ++i){
/*
// mask >> i & 1 は 右シフトして最下位のビットが1かを見るので、
// maskを2進数表示したときの並びが下位から出てくる
// 2**n の選択 の総当りに使える
cout << "mask: "<> i): "<< (mask >> i)
<< " (mask >> i & 1): " << (mask >> i & 1) << endl;
*/
if (mask >> i & 1){
bi.insert(0, "1");
} else {
bi.insert(0, "0");
}
}
cout << bi << endl;
}
cout << endl;
}
D=4としているので、2**4=16種類出てきて、4ビットの組合せが出力される
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0 件のコメント:
コメントを投稿