MENU閉じる

HEXA BLOG

プログラム

HEXA BLOGプログラム2009.4.23

小技

こんばんは、平尾です。
今日はプログラムのとっておきの(あまり使えないあせあせ(飛び散る汗))小技を紹介します!
C言語で値を交換する際、直接交換はできないので普通は一時領域を使いますよね。

int a = 1234567;
int b = 5555555;
int tmp;
tmp = a;
a = b;
b = tmp;

ところが、一時領域を使わない方法があったりするのです!
こんな感じになります。
(自分で考えたい方のために白い文字で書いています↓)

int a = 1234567;
int b = 5555555;
a ^= b;
b ^= a;
a ^= b;

これはXOR交換アルゴリズムというものです。
パッと見て何をしているのか分からないので、
普段から使うことはまず無いと思います。
ゲーム業界に入って早10年になりますが、
実際に今まで使ったことはありませんがく〜(落胆した顔)
ところが、とある方がこのアルゴリズムを実際に使ったと言っていました。
非常に限られた限定的な用途ですが、そのときは大いに役に立ったそうですぴかぴか(新しい)
一見するとやりようがないものでも、
解決方法は意外とどこかに埋もれていたりします。
それを発見したときの喜びといったら!
これがプログラムの醍醐味の1つだったりするんですよねわーい(嬉しい顔)
これを見ている皆さんの中にも、将来この小技を使う日がくるかもしれませんよ!?

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE