四个变量,如何快速判断它们不是1就是0?
Four variables, how to quickly check all of them are either 1 or 0?
我有四个整型变量 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/1,最大值为0/1。 SQL.
中支持最大值和最小值
在 C 中,取按位或,并测试:
int e = a|b|c|d;
return e==0 || e==1;
你可以使用这个:
return (unsigned int)(a | b | c | d) <= 1;
我有四个整型变量 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/1,最大值为0/1。 SQL.
中支持最大值和最小值在 C 中,取按位或,并测试:
int e = a|b|c|d;
return e==0 || e==1;
你可以使用这个:
return (unsigned int)(a | b | c | d) <= 1;