~(ビット単位の補数演算子)
名称
~(ビット単位の補数演算子)
説明
C++言語におけるビット単位の補数演算子は、~であらわされる。&や|とは異なり、~演算子はその右側にある一つのオペランドにだけ適用される。~演算子はそれぞれのビットを反転する。すなわち、0は1になり、1は0になる。以下に例を示す。
0 1 operand1 ----- 1 0 ~operand1
使用例
|
|
注意
この演算の結果、-104といった負の値が表れることに驚くかもしれない。int型の変数の最上位ビットがいわゆる符号ビットであることによる。最上位ビットが1のとき、その数字は負の値として解釈される。正の数と負の数をこのように表すことは、2の補数と呼ばれる。
余談ながら、全ての整数xにおいて、~xは、-x-1となることは興味深い。
符号付整数の符号ビットは望ましくない結果をもたらすことがしばしばある。
参照
オリジナルのページ
https://docs.arduino.cc/language-reference/en/structure/bitwise-operators/bitwiseNot/
最終更新日
August 16, 2026