#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int a = 50; // 110010
int b = 30; // 011110
if (a & b) {
printf("Hi");
}
return 0;
}
上面的代码打印 Hi。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int a = 50; // 110010
int b = 13; // 001101
if (a & b) {
printf("Hi");
}
return 0;
}
上面的代码不打印任何东西。
从逻辑上讲,您会认为按位 AND 意味着二进制中的所有数字都必须匹配才能返回 true。相反,实际上,二进制中的每个数字都必须不同,条件才能返回 false。
我不明白按位与的意义。
我也明白 false 相当于 C 中的 0。