fad*_*bee 7 bit-manipulation algebra bitwise-operators
什么是相反的功能 x XOR (x/2)?
是否有一个方程求解规则系统,类似于代数,但有逻辑运算符?
假设我们有多个xN位.你可以这样写:
b(N-1) b(N-2) b(N-3) ... b(0)
Run Code Online (Sandbox Code Playgroud)
其中b(i)是数字i中的位数(其中0是最低有效位).
x / 2与x左移1位相同.我们假设无符号数.所以:
x / 2 = 0 b(N-1) b(N-2) ... b(1)
Run Code Online (Sandbox Code Playgroud)
现在我们XOR 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)
Run Code Online (Sandbox Code Playgroud)
请注意,这个最右边位(最显著位)是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.