定型文丸暗記 ビットフラグ演算


///http://d.hatena.ne.jp/paserry/ paserry氏に教えていただく。m(_ _)m
#define DKUTIL_FLAG_DOWN(x,n) {x &= ~n;}
///フラグアップマクロ。これは常識。
#define DKUTIL_FLAG_UP(x,n) {x |= n;}

///UINT系変数の右からNビット目のフラグをアップさせる。

#define DKUTIL_FLAG_UP_N(x,n) DKUTIL_FLAG_UP(x,(1 << n))
///@see DKUTIL_FLAG_UP_N() 右からnビット目のフラグをダウンさせる。

#define DKUTIL_FLAG_DOWN_N(x,n) DKUTIL_FLAG_DOWN(x,( 1<<n ))

と、言うことで、これは丸暗記事項・・・。
あと、DKUTIL_FLAG_UP_N()とかつけてみた。
かなり、フラグの管理には惑わされれた経験があるので、
一時期、ヘナチョコクラス作った事ある。
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/dkingyoutility/dkutil/dkutilFlag.h