Skip to content

Instantly share code, notes, and snippets.

@arturparkhisenko
Created February 25, 2017 21:16
Show Gist options
  • Save arturparkhisenko/b3ddfdad985035f73a98a2ff521a9245 to your computer and use it in GitHub Desktop.
Save arturparkhisenko/b3ddfdad985035f73a98a2ff521a9245 to your computer and use it in GitHub Desktop.
js-sum-without-a-plus
/**
* @param {number} a
* @param {number} b
* @return {number}
*/
var getSum = function(a, b) {
var result = a;
var rest = b;
while (rest) {
var carry = result & rest; // and (to get carry value: 0 || 1)
result = result ^ rest; // xor (real sum)
rest = carry << 1; //carry shift (increase by multiplying, same as: carry * 2, thats why we have a +1 effect here)
}
return result;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment