想知道~tolde运算符?

时间:2016-10-13 15:31:33

标签: c++ operators

我已经看过许多网站和推荐的书籍,并且达到了一个点,使用波浪号(〜)运算符来做那些'补充,但当我运行以下代码片段时,我对它的输出感到惊讶。任何人都可以解释我的输出??

以下代码的输出 -11 。 任何帮助将不胜感激。

#include <iostream>
using namespace std;

int main() {
    int x=10;
    cout<<~x;
    return 0;
}

2 个答案:

答案 0 :(得分:2)

代字号是一个按位NOT运算符,所以它的作用是反转位。由于int是有符号的,因此对负数使用2的补码:

00001010 = 10
11110101 = -11

答案 1 :(得分:0)

这里涉及的运算符是http://en.cppreference.com/w/cpp/language/operator_arithmetic Bitwise not运算符,它正在反转数字10的所有位,以获得数字-11,这是由于反转位而产生的。