假设我正在寻找具有某些值的按位函数,例如 -
f(0b00,0b00)!=0
f(0b00,0b10)==0
f(0b10,0b10)!=0
f(0b11,0b10)!=0
f(0b01,0b10)==0
是否有为此类系统构造单个按位表达式 f 的通用方法?(我不确定,但认为如果你有巨大的表达式一次屏蔽一个位,可能会有糟糕的解决方案,所以假设表达式必须适用于所有大小的整数)
我能做的最好的转换是
f(int a, int b)
{
if (a==0 ) {
return b==0;
} else {
return (a&b)!=0;
}
}
我怀疑很难将 (x==0) 条件与 (x!=0) 条件结合起来(给定 x,是否有一个按位函数 f 使得 x==0 <=> f(x)!=0 ? ),但我不知道这里有多少障碍。
任何答案都会引起极大的兴趣:)
和平,
小号