#include <stdio.h> int main() { if (~0 == 1) printf("yes\n"); else printf("no\n"); }
为什么 if 语句是错误的?谁能解释一下?
if
~ 二元补码运算符是一元的,具有“翻转”位的效果。
~
因此,当您执行 ~0 == 1 时,它会检查 -1 == 1 是否为假
~0 == 1
-1 == 1
~0 等于 -1,而不是 1。