【C++】マスクビットについて
問題
マスクビットとか知らん。
解決
たくさんのフラグ情報をひとつにまとめて使えるビットフラグで、特定のフラグが立っているかの確認ができる。
以下、使い方。
const int FLAG_A = 0x00000001; // 0bit (0000 0001) const int FLAG_B = 0x00000002; // 1bit (0000 0010) const int FLAG_C = 0x00000004; // 2bit (0000 0100) const int FLAG_D = 0x00000128; // 7bit (1000 0000) int flagAll = 0; if(true) { // 0bitが1となりフラグが立つ // 0000 0001 flagAll |= FLAG_A; } if(true) { // 1bitが1となりフラグが立つ // 0000 0011 flagAll |= FLAG_B; } if(true) { // 2bitが1となりフラグが立つ // 0000 0111 flagAll |= FLAG_C; } if(true) { // 7bitが1となりフラグが立つ // 1000 0111 flagAll |= FLAG_D; } // ※※※※※※※※※※※※※※※※※※※ // 7bit目が立っているか確認 if((flagAll & FLAG_C) == FLAG_C) { // フラグが立っているときの処理 }
という風にマスクビットを使うことで、特定のフラグ(マスクビットで表した全て)が立っているかを簡単に確認できる。
ビットというだけで苦手意識があったけど、これなら自分でも使える。