Когда мы поняли, как примитивные операторы, такие как +, -, * и /, реализованы в C, я нашел следующий фрагмент из интересного ответа.
// replaces the + operator
int add(int x, int y) {
while(x) {
int t = (x & y) <<1;
y ^= x;
x = t;
}
return y;
}
Похоже, эта функция демонстрирует, как на самом деле работает + в фоновом режиме. Однако, это слишком запутанно для меня, чтобы понять это. Я считал, что такие операции выполняются с использованием директив сборки, сгенерированных компилятором в течение длительного времени!
Реализован ли оператор + в виде кода, размещенного в MOST реализациях? Использует ли это два дополнения или другие зависящие от реализации функции?