Vai*_*orn 11 c reverse bitwise-operators
如何反转C中的按位AND(&)?
例如,我在C中有一个这样的操作:
((unsigned int)ptr & 0xff000000))
结果是0xbf000000.我现在需要的是如何扭转上述情况,即ptr通过使用操作的结果来确定,当然0xff000000.
0xbf000000
ptr
0xff000000
有没有简单的方法在C中实现这个?
And*_*rey 24
按位&无法逆转:
&
0 & 1 = 0 0 & 0 = 0
Pau*_*l R 16
你不能这样做,因为你扔掉了信息(即比特) - 你无法从任何地方获取信息.
请注意,AND(&)和OR(|)都是破坏性的.唯一可逆的布尔运算是XOR(^)和NOT(~).
AND
OR
|
XOR
^
~
ric*_*chb 5
不可能的。0xff000000 的按位 & 是有损操作。您将永久丢失较低的 24 位。
归档时间:
15 年,11 月 前
查看次数:
9276 次
最近记录:
10 年,3 月 前