什么是x XOR(x/2)的反转功能?

fad*_*bee 7 bit-manipulation algebra bitwise-operators

什么是相反的功能 x XOR (x/2)

是否有一个方程求解规则系统,类似于代数,但有逻辑运算符?

Jes*_*per 7

假设我们有多个xN位.你可以这样写:

b(N-1) b(N-2) b(N-3) ... b(0)
Run Code Online (Sandbox Code Playgroud)

其中b(i)是数字i中的位数(其中0是最低有效位).

x / 2x左移1位相同.我们假设无符号数.所以:

x / 2 = 0 b(N-1) b(N-2) ... b(1)
Run Code Online (Sandbox Code Playgroud)

现在我们XOR xx / 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)^0b(N-1).换句话说,你可以b(N-1)立即得到结果.当你有这个位时,你可以计算,b(N-2)因为结果的第二位是b(N-2)^b(N-1)你已经知道的b(N-1).以此类推,可以计算所有位b(N-1)b(0)原来的数目x.