C 二元运算

C Binary operation

我试图在不使用循环的情况下一步解决 C 操作。

我有:

unsigned int8 Dummy = 0x3F;//This values are for reference only, so can be different
unsigned int8 Dummy_2 = 0x02;

Dummy = Dummy ^ Dummy_2;

现在虚拟 = 0x3D

我必须将 Dummy_2 中为 1 的虚拟位设置为 0。 我的代码第一次运行正常,但如果我执行代码两次,它会切换回 1。 我可以用一个循环来做到这一点,但为了代码的清晰起见,我试图在一行中做到这一点。

我会否定 (*) Dummy_2 然后将其用作掩码:

Dummy &= (~Dummy_2);

(*) 编辑:
正如busybee在评论中指出的那样,“否定”是一个算术术语。这里的正确术语是“补充 Dummy_2.