如何测试零是否已更改为1(反之则不行)

Mil*_*lad 0 c binary

我有一个二进制掩码,在某个时刻我正在更新。在我的旧掩码中将1s变为0s是可以的,但相反的做法是不允许的。如何使用一些二进制运算来断言掩码中的0都没有变成1?

Cac*_*ito 5

if (~old & new)
Run Code Online (Sandbox Code Playgroud)

如果您还想知道哪些位从0变为1,只需读取中的每个位bits = ~old & new;。如果您只想知道0是否变成1,那么第一行代码就可以了。

  • @JohnBollinger,因此忽略最后一句话就足够了 (2认同)