常见的位操作实现
1. 常用的一个等式:-n = ~(n - 1) = ~n + 1
2. 获取整数的二进制的最右边的1:n & (-n) 或 n & ~(n - 1)。例如 n = 010100, -n = 101100,那么n & (-n) = 000100
3. 去除整数的二进制的最右边的1:n & (n - 1)。例如 n = 010100,n-1 = 010011,n&(n-1) = 010000
该文章给出了大数的运算大数运算
加法操作
实现加法操作使用”异或“和”与“来实现。对应位的异或操作可以得到该位的值,对应位的与操作可以产生该位对高位的进位值。
//加法
int BinaryAdd(int a, int b) {
int carry, add;
do {
add = a ^ b; //该操作得到本位的加法结果
carry &