四个变量,如何快速检查所有这些变量是1还是0?

时间:2015-04-01 07:31:14

标签: algorithm logic bit-manipulation

我有四个整数变量abcd。我想知道所有这些值是 1 还是 0 。显然我可以使用if语句来检查这个:

if((a == 0 || a == 1) && (b == 0 || b == 1) &&
   (c == 0 || c == 1) && (d == 0 || d == 1))
{
    print(true)
}
else
{
    print(false)
}

写下所有内容真的有点无聊。我在想是否有任何方法可以使用位操作来解决我的问题。但是现在我对它没有任何线索。有人能指出我正确的方向吗?或者还有其他更简单的方法可以检查吗?

3 个答案:

答案 0 :(得分:2)

在C中,按位或,并测试:

int e = a|b|c|d;
return e==0 || e==1;

答案 1 :(得分:1)

一种方法是查询这些变量的最大值和最小值,并验证最小值是0/1,最大值是0/1。 SQL支持Max和Min。

答案 2 :(得分:0)

您可以使用:

return (unsigned int)(a | b | c | d) <= 1;