Saturday, May 9, 2020

Add 2 integers without using + operator

int sum(int a, int b) {
    int s = a ^ b;        // partial sum
    int c = (a & b) << 1; // carry
    
    // carry? 
    while( c != 0 ) {
        // yes -> sum it, recalc carry
        int newc = (s & c) << 1;
        s = s ^ c;
        c = newc;
    }
    
    return s;
}

Other entries:

No comments:

Post a Comment