为什么 if 语句为假,因为 ~0 为 1,即 1==1 应该为真?
Why the if statement is false as ~0 is 1 which is 1==1 should be true?
#include <stdio.h>
int main() {
if (~0 == 1)
printf("yes\n");
else
printf("no\n");
}
为什么 if
声明是错误的?谁能解释一下?
~0 等于 -1,不是 1。
~
二进制补码运算符是一元运算符,具有 'flipping' 位的效果。
因此,当您执行 ~0 == 1
时,它会检查 -1 == 1
是否为假
#include <stdio.h>
int main() {
if (~0 == 1)
printf("yes\n");
else
printf("no\n");
}
为什么 if
声明是错误的?谁能解释一下?
~0 等于 -1,不是 1。
~
二进制补码运算符是一元运算符,具有 'flipping' 位的效果。
因此,当您执行 ~0 == 1
时,它会检查 -1 == 1
是否为假