c - 为什么这个按位运算符结果为假?

标签 c bitwise-operators

int u = 21;
int v = 10;

if (u && v) printf(“ Time to move on!! ”);
if (u & v) printf(“Do it today!! \n”);

这只会打印“Time to move on!!”这是有道理的,因为在第一个 if 语句中 u 和 v 都是 true,但是对于“if (u & v)”,我不确定它是如何确定这是真还是假。我明白了 & 是 21 和 10 的两个二进制表示,但是然后呢?谢谢!

最佳答案

21 的二进制为 10101,而 10 的二进制为 01010。按位 & 返回 000000,即 false

关于c - 为什么这个按位运算符结果为假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29756858/

相关文章:

从 LPVOID 转换为结构体 - C

python - 为什么 python 实现使用的内存比 C 多 9 倍?

代码打印额外的内存垃圾

f# - 与 OCaml 的 'lsr' 和 'asr' 等效的 F# 按位运算符是什么?

python - 添加 '=' 对 Python 中的位运算符有什么作用? (即 '<<=' 而不是 '<<' )

嵌套结构的 C 问题(看起来 1 个实例是在没有明确定义的情况下定义的)

c - 如何使用函数扫描二维数组而不删除其内容

php - 了解 PHP &(与号,按位与)运算符

javascript - 在 Javascript 中以负移位计数左移

go - 为什么在 golang 中左移 64 位不会溢出?