bit-manipulation - x XOR (x/2) 的逆函数是什么?

标签 bit-manipulation bitwise-operators algebra

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

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

最佳答案

假设我们有一个数字 x N 位。你可以这样写:

b(N-1) b(N-2) b(N-3) ... b(0)

哪里b(i)是位数 i在数字中(其中 0 是最低有效位)。
x / 2x 相同左移 1 位。让我们假设无符号数。所以:
x / 2 = 0 b(N-1) b(N-2) ... b(1)

现在我们异或 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)

请注意,最右边的位(最高有效位)是 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/

相关文章:

algorithm - 如何计算 3D Morton 数(交错 3 个整数的位)

c++ - 将 unsigned char * 转换为 hexstring

c# - 了解整数上单个与号运算符 (&) 的行为

c - 实现 TDOA 三边测量 Fang 算法的问题

php - CIDR 位运算 - 我可以更聪明一点吗?

c++ - 访问位域中的所有空闲槽

c - 带位运算符的模式

php - 不同机器上的按位运算结果不同

algorithm - 求方程的积分解

Python 搜索代数函数