一補數運算子:~

語法

~ cast-expression

備註

一補數運算子 (~),有時稱為「位元補數」運算子,它會產生其運算元的位元 1 補數。 也就是說,運算元中是 1 的每個位元,在結果中都是 0。 反之,運算元中是 0 的每個位元,在結果中都是 1。 一補數運算子的運算元必須是整數類資料類型。

~ 的運算子關鍵字

C++ 會指定 compl 作為 ~ 的替代拼字。 在 C 中,替代拼字會以 <iso646.h> 標頭中的巨集形式提供。 在 C++ 中,替代拼字是關鍵字;<iso646.h> 或 C++ 對等 <ciso646> 的使用已被取代。 在 Microsoft C++ 中,需要 /permissive-/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 或 0x0000 的 1 補數。

整數提升會在整數運算元上執行。 運算元升階後的類型是結果類型。 如需整數升階的詳細資訊,請參閱標準轉換

另請參閱

具有一元運算子的運算式
C++ 內建運算子、優先順序和關聯性
一元算術運算子