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