スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スワップ swap

 ある2つの値 a と b を入れ替える(スワップ)するコードは、プログラマであれば誰でも書いた経験はあるでしょう。
 たいていのコードは、次のように第3の変数を用意するでしょう。
コード1

tmp = a
a = b
b = tmp

では、第3の変数を使わずにスワップできるでしょうか?
コード2

a = a xor b
b = b xor a
a = a xor b

 コード1とコード2、どちらのコードで書くかは場合によるでしょう。
しかしコード2は読み難いコードであることは間違いないですが、
知っていて欲しいコードです。

 xorの便利な使い方としてよく目にするのが、描画処理です。
色のxor

 上図で、緑をドラッグ移動していると想像してください。
赤の上を緑が通過するとき、もし黄のxor表示をした場合
仕様的には下になる図形が予想できるメリットもありますし、
通過後に元の赤に戻すのも画面全てを再描画しなくても、
もう一度、緑でxorすれば、もとの赤に戻せます。

先人の知恵のすごさに驚かされます。

スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

夢追

Author:夢追
芸術プログラミングの世界へようこそ

検索フォーム
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
フリースペース
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。