翻訳と辞書
Words near each other
・ XML暗号化
・ XML署名
・ XMQ-17 (航空機)
・ XMQ-19 (航空機)
・ XMRVウイルス
・ XMULTIPLY∞
・ XNI-02 (架空の軍用機)
・ XNQ (航空機)
・ XORゲート
・ XORリンクリスト
XOR交換アルゴリズム
・ XOR連結リスト
・ XO型
・ XO望遠鏡
・ XO醤
・ XP-10 (航空機)
・ XP-13 (航空機)
・ XP-15 (航空機)
・ XP-31 (航空機)
・ XP-34 (航空機)


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

XOR交換アルゴリズム : ウィキペディア日本語版
XOR交換アルゴリズム[えっくすおあこうかん]
XOR交換(エックスオアこうかん、''XOR swap'')は、コンピュータ・プログラミングアルゴリズムの一種であり、排他的論理和(XOR)を使用して一時変数を使わずに同じデータ型のふたつの変数の(異なる)値を交換する操作である。
このアルゴリズムはXORの対称差という性質を利用したものである。すなわち、任意のA, Bについて、(A XOR B) XOR B = A が成立することである。
==アルゴリズム==
標準的な交換アルゴリズムでは一時的な格納場所が必要となる。''x'' と ''y'' の値を交換する場合、以下のようになる。
# ''y'' の値を一時格納域にコピーする:temp ← y
# ''y'' に ''x'' の値を代入する:y ← x
# ''x'' に一時格納域の値を代入する:x ← temp
あるいは、''x'' と ''y'' が整数ならば、以下のようなアルゴリズムで交換することができる。
# ''x'' := ''x'' + ''y''
# ''y'' := ''x'' - ''y''
# ''x'' := ''x'' - ''y''
ただし、このアルゴリズムをシステムで使用すると算術オーバーフロー例外を起こしてしまう可能性がある。XOR交換アルゴリズムを使うと、一時格納域も必要ないし、オーバーフローが発生することもない。
アルゴリズムは以下のようになる。
#x := x XOR y
#y := x XOR y
#x := x XOR y
このアルゴリズムは一般にそのまま3つの機械語命令に対応する。例えばIBMのシステム/370のアセンブリ言語コードは以下のようになる。
: XOR R1, R2
: XOR R2, R1
: XOR R1, R2
ここで R1 と R2 はレジスタであり、XOR命令の結果はひとつめの引数に格納される。
しかし現代のプロセッサでは、このテクニックによる得失のうち、失うほうが大きいかもしれない(後述)。

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「XOR交換アルゴリズム」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.