C - 有没有办法用比特检查检查一个数字是否等于1?

时间:2013-04-25 07:56:32

标签: c binary bit-manipulation bit

这只是一个感兴趣的问题 - 我不确定它实际上是如何适用的。无论如何 - 是否可以使用位检查来查看数字是否等于1?

3 个答案:

答案 0 :(得分:5)

我不确定问题究竟是什么,但您可以使用!(x ^ 1)x == 1!(x-1)(x & 1) && !(x & ~1)或其他许多方式之一。

答案 1 :(得分:1)

我认为如果(1 ==数字)就足够了。在内部进行逐位比较。

答案 2 :(得分:0)

我不太了解比特检查。如果您的意思是逐个检查位,您可以在循环中执行该操作。或者你可以使用代码:

int equalsOne(int a) {
    return (a && (a == !!a));
}

!运算符将返回0非零值1。 return语句中的前导a消除了a == 0

的情况