ビット演算
ビット演算
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/18 00:12 UTC 版)
ビットごとの排他的論理和は、コンピュータ上でビット演算を行っている場合に、特定のビットだけを反転させるのによく用いられる。ある数値と、その数値のビットを反転させたい部分を 1 にした数値との排他的論理和をとると、指定した部分が反転した数値が得られる: 0011 ( 2 ) ⊕ 0110 ( 2 ) = 0101 ( 2 ) {\displaystyle 0011_{(2)}\oplus 0110_{(2)}=0101_{(2)}} 多くのプロセッサで、レジスタをゼロにする場合に、直接ゼロを書き込むより、自分自身とのXORをとってゼロとするほうが(コードサイズや速度などで)有利な場合がある。 X ⊕ X = 0 {\displaystyle X\oplus X=0} ビットごとの排他的論理和によって、多数の入力における偽の個数の奇数・偶数(パリティ)が検出できるので、誤り検出に用いられる。この目的で排他的論理和(論理ゲート)を樹枝状に接続した回路をパリティツリーという。 ビットごとの排他的論理和は特定ビットの反転操作なので、2回繰り返せば元に戻る。つまり ( P ⊕ K ) ⊕ K = P {\displaystyle (P\oplus K)\oplus K=P} これは、結合法則によって、次のとおりに証明できる。 ( P ⊕ K ) ⊕ K = P ⊕ ( K ⊕ K ) = P {\displaystyle (P\oplus K)\oplus K=P\oplus (K\oplus K)=P} この性質は便利であって、さまざまな応用がある。単純なものでは、(現代では有用性はほとんどないが)2個のレジスタの内容を他の資源を使わず交換できる「XOR交換アルゴリズム」があり、データ構造では「XOR連結リスト」がある。
※この「ビット演算」の解説は、「排他的論理和」の解説の一部です。
「ビット演算」を含む「排他的論理和」の記事については、「排他的論理和」の概要を参照ください。
ビット演算と同じ種類の言葉
固有名詞の分類
- ビット演算のページへのリンク