当一个集合已知时,按位或和与不等于加法和减法吗?
Is a bitwise OR and AND NOT the same as addition and subtraction when a set is known?
If a = 2
and b = 4
where a OR b = 6
and (a|b) AND NOT b = a
then is a bitwise AND NOT
equivalent to subtraction when the value is a set of flags哪个已知包括被删除的标志?
加法也一样吗?
请注意,这是在已知标志存在于集合中的情况下。如果标志不存在,则不会发生加法或减法。
仅当您与第一个操作数中的 1 位绝对 不 的值进行 ORing 或与 1 位明确的值的 bit-negated 值进行 AND 运算时在第一个操作数中是。
如果我理解正确的话,是的。所以:
- 如果
(a & b) == 0
,则(a | b) == (a + b)
,
- 如果
(a | b) == a
,则(a & ~b) == (a - b)
作为一种证明,假设加法可以写成a + b == (a ^ b) + ((a & b) << 1)
(也就是做完所有的sums-without-carry,然后分别加上进位)。因此,如果 a & b
为零,则进位消失,变为 a ^ b
,然后变为 a | b
。类似的事情发生在我们知道没有借位的减法上。
If a = 2
and b = 4
where a OR b = 6
and (a|b) AND NOT b = a
then is a bitwise AND NOT
equivalent to subtraction when the value is a set of flags哪个已知包括被删除的标志?
加法也一样吗?
请注意,这是在已知标志存在于集合中的情况下。如果标志不存在,则不会发生加法或减法。
仅当您与第一个操作数中的 1 位绝对 不 的值进行 ORing 或与 1 位明确的值的 bit-negated 值进行 AND 运算时在第一个操作数中是。
如果我理解正确的话,是的。所以:
- 如果
(a & b) == 0
,则(a | b) == (a + b)
, - 如果
(a | b) == a
,则(a & ~b) == (a - b)
作为一种证明,假设加法可以写成a + b == (a ^ b) + ((a & b) << 1)
(也就是做完所有的sums-without-carry,然后分别加上进位)。因此,如果 a & b
为零,则进位消失,变为 a ^ b
,然后变为 a | b
。类似的事情发生在我们知道没有借位的减法上。