2017-03-03 5 views
0

各intが1ビットを持つintビットフィールドの配列を作成したいとします。つまり、すべての数字が1または0になることを意味します。ビットの配列を作るには?

私は

struct bitarr { 
    int arr : 1[14]; 
}; 

を試してみましたが、それはコンパイルできないと私は、これはあなたがこれらのビットの配列を行うことができない方法

答えて

2

であるとは思いません。代わりに、あなたのビットのための単一の16ビット変数を作成し、それにi[myindex]としてアクセスするのではなく、bitsVariable & (1 << myindex)としてアクセスすることができます。

ビットを設定するには、使用することができます:

bitsVariable |= 1 << myindex; 

は、ビットをクリアするには、使用することができます:

bitsVariable &= ~(1 << myIndex); 

ビットをチェックするには、使用することができます。

if (bitsVariable & (1 << myIndex)) { 
    //Bit is set 
} else { 
    //Bit is not set 
} 
関連する問題