我已经看过许多网站和推荐的书籍,并且达到了一个点,使用波浪号(〜)运算符来做那些'补充,但当我运行以下代码片段时,我对它的输出感到惊讶。任何人都可以解释我的输出??
以下代码的输出 -11 。 任何帮助将不胜感激。
#include <iostream>
using namespace std;
int main() {
int x=10;
cout<<~x;
return 0;
}
答案 0 :(得分:2)
代字号是一个按位NOT运算符,所以它的作用是反转位。由于int是有符号的,因此对负数使用2的补码:
00001010 = 10
11110101 = -11
答案 1 :(得分:0)
这里涉及的运算符是http://en.cppreference.com/w/cpp/language/operator_arithmetic Bitwise not运算符,它正在反转数字10的所有位,以获得数字-11,这是由于反转位而产生的。