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

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

Initial State 1010
New State     1100

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

Desired Result 0100

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

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

【问题讨论】:

    标签: bit-manipulation bitwise-operators bit boolean-logic bitmask


    【解决方案1】:

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

    LOW2HIGH = ~INITIAL & NEW
    

    【讨论】:

    • 谢谢,就是这样!
    猜你喜欢
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2013-11-05
    • 1970-01-01
    • 2010-10-29
    相关资源
    最近更新 更多