比较顺序不同的按位运算 - (0 到 1) 与 (1 到 0)

Posted

技术标签:

【中文标题】比较顺序不同的按位运算 - (0 到 1) 与 (1 到 0)【英文标题】:Bitwise operation with difference in order of comparison - (0 to 1) vs (1 to 0) 【发布时间】:2017-03-29 23:54:00 【问题描述】:

我有一个问题,其中有两组位正在比较。第一个是初始状态,第二个是新状态。

Initial State 1010
New State     1100

我想按位比较这些位集并生成第三个位集,它代表所有变高的位 (0->1) 但不是那些变低的位 (1->0)

Desired Result 0100

最初为 0 并变为 1 的位为高位。高位和变低的位被忽略,因此 OR 和 XOR 似乎不太正确。

有没有一种优雅的方法可以用位运算符来完成这个?

【问题讨论】:

【参考方案1】:

换句话说,您正在寻找在初始状态中未设置而在新状态中已设置的位。所以:

LOW2HIGH = ~INITIAL & NEW

【讨论】:

谢谢,就是这样!

以上是关于比较顺序不同的按位运算 - (0 到 1) 与 (1 到 0)的主要内容,如果未能解决你的问题,请参考以下文章