不使用运算符实现“四则运算

加法:用^来计算加法;主要要考虑进位,而只有两个数的相同位都为1时才会出现进位,所以用&来计算是否要进位。
int getSum(int a, int b){
    int c = a&b, xor = a^b;
    return c==0? xor : getSum(xor, c);
}
减法:计算机中会把减法转换为“+反码”,因此与加法相似。
乘法:可转换为“左移”与“加法”的组合,来实现任意的乘法。
除法:对于除数是2的阶乘的除法可转换为“右移”,但对除数为其它时的情况暂时没有更高效的解决方法,所以一般除法要比乘法慢。

猜你喜欢

转载自blog.csdn.net/EasonDongH/article/details/89467328