为什么 1 ^ 1 = 0 在 C 中
Why is 1 ^ 1 = 0 in C
在此代码中
#include <stdio.h>
int main(void){
int i = 1, j = 0;
printf("%d", i ^ !j);
return 0;
}
此代码的结果是 0 而不是 1 即使 i = 1 和 j = 1.
它是如何工作的?
^
是按位排他或在 C 中,不是取幂。因此,当您将 1 的所有设置位翻转为 1 时,您会得到 0。
在此代码中
#include <stdio.h>
int main(void){
int i = 1, j = 0;
printf("%d", i ^ !j);
return 0;
}
此代码的结果是 0 而不是 1 即使 i = 1 和 j = 1.
它是如何工作的?
^
是按位排他或在 C 中,不是取幂。因此,当您将 1 的所有设置位翻转为 1 时,您会得到 0。