c-C运算符不应用于int吗?

这个问题已经在这里有了答案:            >            How does logical negation work in C?                                    5个
我有

int x = 5;
printf("%d", x); //i get 5... expected

x = !x;
printf("%d", x);// i get 0... hmm 

5的二进制是:0101
如果对每个位应用逆,则应该得到1010,但是!不一定是逆变器,而是逻辑运算符.为什么我得到0?

是为什么在C中将正数视为true,所以!-ing会得出0?
这个编译器是特定的吗?

解决方法:

not(!)运算符分别根据输入是非零还是0来返回0或1.

如果您正在寻找按位取反,请尝试〜x.

上一篇:C# – ??或.GetValueOrDefault()


下一篇:javascript – 如何使用=运算符