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

来源:互联网 发布:齐鲁交易软件下载 编辑:程序博客网 时间:2024/05/14 17:04

一、循环方式

// 加法

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 (0 == y) return x;    int sum = x ^ y;    int carry = (x & y) << 1;    return add(sum, carry);}







原创粉丝点击