c - 我如何在 C 中找到 x 的任何位是否等于 1

标签 c logic bit-manipulation

<分区>

仅使用按位和逻辑运算,如何在 C 中检测 x 的任何位是否等于 1?没有循环、if/else、== 或 !=

有人提出 (x & ~0) && 1,但我已经看了好几个小时了,仍然不知道 (x & ~0) && 1 如何检测 x 的任何位是否等于 1

最佳答案

!!x 会做到这一点。

这会将所有值转换为 1,但 0 除外,它保持为 0。编译器可以对此进行智能优化。

关于c - 我如何在 C 中找到 x 的任何位是否等于 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591904/

相关文章:

在没有 Root 访问的情况下,Linux 在 CPL3(用户模式)下会崩溃或挂起吗?

c - OpenGL 着色器不绘图

c - AIX 7.2 GLib-GObject 信号传入无效

c - 将每个偶数对字符与数组中的下一对字符交换

php - 多个辅音的正则表达式

javascript - 计算选中复选框的总计

r - 如何编写 R 脚本来检查直线;即,对于任何给定的行,一组列中的所有值是否都具有相同的值

for-loop - lisp循环遍历整数位的方法

c - 为什么 128 在一和二的补码中使用 8 位溢出?

javascript - 按位或意外结果