~ (NOT)原文C++言語のNOT演算子「~」は、&や|と違って、右側の1つの値に対して働きます。NOT演算子は各ビットを反対の値にします。0は1に、1は0になります。 0 1 値1 ------- 1 0 ~ 値1 int a = 103; // 二進数で 0000000001100111 int b = ~a; // 二進数で 1111111110011000 (十進数の -104) 演算の結果、-104という負の数が現れたことに驚くかもしれません。これは整数の最上位ビットが原因です。符号ビットとも言われるこのビットが1のとき、その数は負と解釈されます。 このような正負の値のエンコーディングは「2の補数」と呼ばれます。ちなみに、xが整数のとき、~xは(-x - 1)と同じです。 [目次へ戻る] |
Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]