荒野草途伸BLOG出張所

アクセスカウンタ

zoom RSS VBメモ:XORの活用法

<<   作成日時 : 2006/08/04 20:06   >>

ブログ気持玉 0 / トラックバック 1 / コメント 1

 熟練PGでも意外に知らない/気づいていない人が多い、ビット演算子 Xor の活用法。
 Xorを使えば、Boolean型(C#やJAVAだとbool型)を1行で反転させることが出来る。


Dim blnA=True

blnA=blnA Xor True

 この場合、blnAはFalseになる。


XORの「両方とも0の場合にのみ1になる」という性質を利用している。XOR演算子の詳細な解説については、他の専門サイトに譲ろう。
 

 具体的な活用法としては、例えばこんなのがある。

Windows Formでのラジオボタンの切り替え(VB2005):

<spanstyle =" color: blue;">Public Class Form1</spanstyle>

<o:p> </o:p>    Private Sub rdo七瀬_CheckedChanged(ByVal sender As System.Object,  _
                                    ByVal
e As System.EventArgs) Handles rdo
七瀬.CheckedChanged<o:p></o:p>

        Me.rdo風子.Checked = Me.rdo七瀬.Checked Xor True<o:p></o:p>

    End Sub<o:p></o:p>

<o:p> </o:p>    Private Sub rdo風子_CheckedChanged(ByVal sender As System.Object,  _
                                     ByVal
e As System.EventArgs) Handles rdo
風子.CheckedChanged<o:p></o:p>

        Me.rdo七瀬.Checked = Me.rdo風子.Checked Xor True<o:p></o:p>

    End Sub<o:p></o:p>

End Class


実行結果

↓クリックすると切り替わる。


 このように、IF文を使わなくても、チェックの切り替えが出来る。ラジオボタン2個だと大したこと無いが、チェックボックスの10個20個一斉切り替えとかなってくると、結構ありがたみがわかるだろう。
 無論、C#やJAVAでも同じ要領でコードを書くことが出来る。


 VBで業務アプリをやっていると、ビット演算なんて滅多に使うことはない。これは数少ない活用法といえるだろう。

−−−−−

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(1件)

タイトル (本文) ブログ名/日時
VBメモ:XORの活"法
nice.. ...続きを見る
priitthebest
2006/08/04 20:55

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(1件)

内 容 ニックネーム/日時
こんな書き方でもビット反転できるようです。

blnA=not blnA

試したのは Excel2003 VBA ですが。
sophia(rc)
2006/09/04 16:26

コメントする help

ニックネーム
本 文

byどうなの.ねっと

VBメモ:XORの活用法 荒野草途伸BLOG出張所/BIGLOBEウェブリブログ
文字サイズ:       閉じる