- ベストアンサー
空いているビットフラグの確認方法
空いているビットフラグの中で最小のものを見つけたいのですが、 うまい方法がわからず、どのように作成したら良いか、ご教授お願いします。 たとえば、 int nFlg = 0xFF8F; //上位16ビット省略 というフラグの場合、空いている(ビットフラグの無い)箇所は int nFalse = ~nFlg; // = 0x0070 で求められますが、この中から、最小のフラグ位置(0x0010)を求めたいのです。 (未使用のフラグの中から、使えるビットひとつを選びたいのです・・) 総当りしかないでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
x = nFalse & (~nFalse+1); x = ~nFlg & (nFlg+1); でいいと思います。
お礼
+1でパタパタとフラグを目的の位置までひっくり返す感じでしょうか。 ありがとうございました。勉強になります。