四个变量,如何快速判断它们不是1就是0?

Four variables, how to quickly check all of them are either 1 or 0?

我有四个整型变量 abcd。我想知道它们是否都具有值 10。显然我可以使用 if 语句来检查这个:

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

写这么多有点无聊。我在想是否有任何方法可以使用位操作来解决我的问题。但是现在我对此一无所知。任何人都可以指出我正确的方向吗?或者还有其他更简单的方法来检查吗?

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

中支持最大值和最小值

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

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

你可以使用这个:

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