Подтвердить что ты не робот

Как добавить два числа в JavaScript "без использования операторов" + "или" - "?

Я знаю, что альтернатива использованию знака + для сложения - сделать что-то вроде этого:

int add(int a, int b)
{
     if(b == 0)
         return sum;
     sum = a ^ b;
     carry = (a & b) << 1;
     return add(sum,carry);
}

Но у меня есть две проблемы:

  • Это C++, а не JavaScript. Поддерживается ли это в JavaScript?
  • Очевидно, что вся хитрость в ^ & <<, но я не знаю, как начать искать их в JavaScript, потому что я не знаю, как они называются. Что я должен гуглить даже?

Я пытался написать это на JavaScript... но, кажется, я что-то упустил

var getSum = function(a, b) {
  return (a ^ b, (a & b) << 1)
};
4b9b3361

Ответ 2

Ну хорошо, я отвечаю на вопрос, как четко описано в шапке. Нет + и нет - операций правильно..? Все же... не с побитовой, а с чистой математикой должен быть правильный ответ, я полагаю.

var x   = 1,
    y   = 2,
    sum = Math.log2(2**x * 2**y);
console.log(sum);

Ответ 3

const add = (a, b) => new Function('a', 'b', 'return ${a} ${String.fromCharCode(43)} ${b}')(a, b);