ビット反転 【bit flipping】
概要
ビット反転(bit flipping)とは、2進数のビット列に対する演算(ビット演算)の一つで、各ビットの値を0ならば1に、1ならば0に反転する操作のこと。ビットの並びを逆さまにする操作を指すこともある。ビット否定 (bitwise not)
論理否定(NOT演算)をビットごとに行う演算で、「11001010」をビット反転すると「00110101」となる。もとの値と演算後の値を足し合わせると桁数が同じですべての桁が「1」の値となるため、1の補数を求める演算でもある。
プログラミング言語の中には、ビット演算子の一つとして、指定した値をビット反転する単項演算子が用意されていることもある。C言語やCの記法を受け継ぐ言語では「~」(チルダ)がこれに当たる。「~x」でxのビット反転を求める。
ビットリバース (bit reversal)
ビット反転という用語はビット列の並びを逆さまに入れ替える「ビットリバース」(bit reversal)を意味することもある。先頭のビットの値を末尾に、2番目の値を末尾から2番目に…という具合にビット列の中身を逆さまにする操作で、例えば「10100110」のビットリバースは「01100101」となる。
(2021.12.18更新)