次の方法で共有


1 の補数演算子: ~

~ cast-expression

解説

1 の補数演算子 (~) は、"ビット補数" 演算子とも呼ばれ、オペランドのビットごとの 1 の補数を生成します。 つまり、オペランドの各ビットが 1 である場合の結果は、0 になります。 逆に、オペランドの各ビットが 0 である場合の結果は、1 になります。 1 の補数演算子のオペランドは、整数型である必要があります。

~ の演算子キーワード

compl 演算子は ~ の代替表現です。 プログラムで compl 演算子にアクセスするには、2 つの方法があります。1 つはヘッダー ファイル iso646.h を含める方法で、もう 1 つは /Za を使用してコンパイルする方法です。

使用例

// expre_One_Complement_Operator.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

int main () {
   unsigned short y = 0xFFFF;
   cout << hex << y << endl;
   y = ~y;   // Take one's complement
   cout << hex << y << endl;
}

この例では、y に割り当てられた新しい値は、符号なしの値 0xFFFF の 1 の補数、つまり 0x0000 です。

整数の上位変換は、整数オペランドに対して実行され、結果の型は、そのオペランドが昇格される型になります。 上位変換のしくみの詳細については、「整数の上位変換」を参照してください。

参照

関連項目

単項演算子を含む式

C++ 演算子

C++ の演算子、優先順位と結合規則

概念

単項算術演算子