フラグアップ、フラグダウン、マクロ #define C言語

どもども、dです。
最近、ちょっと疑問が・・・、やはりビット演算は慣れるまで難Cのです。
前回の苦闘はd:id:studiokingyo:20040522ですが、

今回は、ビット入れ替えではなくフラグアップダウンについての苦闘です。

今、こんな感じでフラグアップ、ダウンのマクロを実装しています・・・。(うわ〜。だせぇ。


///スマン、こんなダサい実装で・・・。
#define DKUTIL_FLAG_DOWN(x,n) {(x & n) ? x |= (x^n) : 0;}//{x |= (x^n);}
///フラグアップマクロ。これは常識。
#define DKUTIL_FLAG_UP(x,n) {x |= n;}

実の所・・・、私、これしかやっぱり思いつかないです・・・。
テストの通り、数学的思考能力が弱いらしい。(´Д⊂グスン
三項演算子もif文も使わないで、ビット演算だけでフラグダウンの処理は記述できないだろうか?
どうか、皆様、公式がありましたら是非、コメントやメール、お待ちしております。m(_ _)m

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


///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

最近、試して見たSTG*1 WARNING FOREVER

ボスを倒していくシューティングです。ボスがだんだんパワーアップして行きます。

個人的に思うに、これははっきり言って凄い。
私はまったく、このアルゴリズムを考える事が出来ない・・・。
再現はコスト度外視で出来そうだが、どうも上手く行くとは限らなそう・・・。

http://www18.big.or.jp/~hikoza/
こちらからダウン。

暗号系 リファ

http://www.google.com/search?q=%2Brc6+%2BCreateFile&sourceid=mozilla-search&num=20
なんかキ・キ・キ・キタ━━━━━━(゜∀゜)━━━━━━!!!!みたい。
そうかそうか。RC6のソースがほCか。
スマン、資料少ないからあと、1年程でNYSLで公開するから勘弁・・・。

後・・・Rijndaelは実装できているんだけど・・・幾分、ライセンスが・・・
d:id:studiokingyo:20040716#p2