二进制求补运算符:~

语法

~ cast-expression

备注

二进制反码运算符 (~)(有时称为“按位反码”运算符)将生成其操作数的按位二进制反码。 即,操作数中为 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 的二进制反码。

整型提升是对整型操作数执行的。 操作数提升到的类型是结果类型。 有关整型提升的详细信息,请参阅标准转换

另请参阅

带一元运算符的表达式
C++ 内置运算符、优先级和关联性
一元算术运算符