您的位置:首页 > 编程语言 > Java开发

Java 用位运算改写加法、乘法

2017-05-26 09:48 176 查看
一、循环方式

// 加法

int add(int x, int y) {
while (y != 0) {
x ^= y;
y = ((x ^ y) & y) << 1;
}
return x;
}

// 乘法

int multiply(int x, int y) {
int m = 0;
while (true) {
if (y == 0) break;
if ((y & 1) == 1) {
m= add(m, x);
}
y >>>= 1;
x <<= 1;
}
return m;
}


二、递规方式

int add(int x, int y) {
if (
4000
0 == y) return x;
int sum = x ^ y;
int carry = (x & y) << 1;
return add(sum, carry);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: