Open lewenweijia opened 5 years ago
function multiply7(n) { function bitAdd(a, b) { let xor = a ^ b; let carry = (a & b) << 1; while(carry) { [xor, carry] = [xor ^ carry, (xor & carry) << 1]; } return xor; } return bitAdd(n << 3, bitAdd(~n, 1)); } // multiply7(8) -> 56 // multiply7(-8) -> -56 // multiply7(0) -> 0