C中的1的补码运算符

0 c complement

在下面的程序中,为什么~a在输出中打印出来10?为什么不-11呢?

#include <stdio.h>

int main()
{
    int a=10;
    ~a;
    printf("complement :  %d\n",a);
}
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 5

因为您不在任何地方保存补充操作的结果.

如果你这样做

a = ~a;
Run Code Online (Sandbox Code Playgroud)

那么你应该得到一个不同的结果.

或者你可以简单地打印操作的结果:

printf("complement :  %d\n", ~a);
Run Code Online (Sandbox Code Playgroud)