我目前正在学习按位运算符的过程,我遇到了一些我不太明白的事情。
我目前正在使用 NOT(~) 运算符,它应该反转所有位。因此,为了更好地理解它,我尝试创建一个程序来翻转数字 1 的位。
int main()
{
int x = 1; // 0001 in binary
int y = ~x; // should flip the bits, so its 1110, or 14
cout << y;
}
Run Code Online (Sandbox Code Playgroud)
然而,当运行这个时,我得到的结果是-2。谁能解释一下为什么这不起作用?