比较顺序不同的按位运算 - (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)的主要内容,如果未能解决你的问题,请参考以下文章

python中的按位与 +按位或+ 按位反+异或运算 +左移+右移

Java中的按位运算

c语言的按位运算符怎么操作!?

python-opencv-图像的按位运算

Delphi中的按位补码。 (翻译C#〜运算符)

C语言里的按位异或运算符