我有四个整数变量a
,b
,c
和d
。我想知道所有这些值是 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)
}
写下所有内容真的有点无聊。我在想是否有任何方法可以使用位操作来解决我的问题。但是现在我对它没有任何线索。有人能指出我正确的方向吗?或者还有其他更简单的方法可以检查吗?
答案 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;