基本上我有一个用按位操作数操作的数字,如您在此处看到的:
is[i_6_] = i_9_ - 256 | ~0x7fffffff;
我需要反转/撤消这个位操作数..
| ~0x7fffffff
这样我就可以拥有以下价值:
i_9_ - 256r help!
如何反转这个位操作数?
首先我假设你写的表达式实际上是(i_9_ - 256) | ~0x7fffffff
| ~0x7fffffff
实际上与
| 0x80000000
这意味着它将使原始数字的最高位(根据您所说的 i_9_ - 256)变为“1”,而不管其原始值如何。所以我不认为你可以扭转这个
正如您可能知道的那样,仅删除该位将是:
& 0x7fffffff
但是,由于您需要将其恢复到之前的状态,因此您需要 - 一般而言 - 在 OR'ing 之前保存该最重要位的状态,以确定您是否应该清除该位。那么,获得结果的最直接方法是重新使用 i_9_ 的原始值,但这次没有 OR 操作:
= i_9_ - 256
使用这个:并且与值的(〜)倒数
i_9_ - 256 & 0x7fffffff;
逆的逆~(~)