x XOR (x/2)
的反向功能是什么? ?
是否有一套求解方程的规则,类似于代数,但有逻辑运算符?
最佳答案
假设我们有一个数字 x
N 位。你可以这样写:
b(N-1) b(N-2) b(N-3) ... b(0)
哪里
b(i)
是位数 i
在数字中(其中 0 是最低有效位)。x / 2
与 x
相同左移 1 位。让我们假设无符号数。所以:x / 2 = 0 b(N-1) b(N-2) ... b(1)
现在我们异或
x
与 x / 2
:x ^ (x / 2) = b(N-1)^0 b(N-2)^b(N-1) b(N-3)^b(N-2) ... b(0)^b(1)
请注意,最右边的位(最高有效位)是
b(N-1)^0
这是 b(N-1)
.换句话说,你可以得到位 b(N-1)
从结果立即。有了这个位,就可以算出b(N-2)
因为结果的第二位是 b(N-2)^b(N-1)
你已经知道 b(N-1)
.依此类推,您可以计算所有位 b(N-1)
至 b(0)
原号x
.
关于bit-manipulation - x XOR (x/2) 的逆函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9617782/