2007年11月30日金曜日

変数の交換

研究とはあまり関係ないが、TAをしている授業で先生が
以下のようにtmpを用いなければ変数の値を交換することは「絶対に」できない、とのこと。
tmp =a;
a = b;
b = tmp;

そんなわけでできないといわれると悔しいので

a ^= b;
b ^= a;
a ^= b;

とXORを取ることで交換できるので絶対ではない。
一説によると後者の方が早いらしいが、どのくらい差があるか等は不明だ・・。
あとint型でしか使えないと思いますが。

0 件のコメント: