Как просуммировать два числа типа INT
без использования любых арифметических операций, а только с использованиемп
бинарных операций сдвига, побитовых, сравнительных, логических. Кто то знает как єто можно сделать ? (
int main()
{
int a = 15, b = 29; // Для положительных операндов
int T = 0, bit = 0, count = 0, revert = 0;
while(a || b || bit) {
count = (count << 1) | 1;
T = (T << 1) | ((a&1)^(b&1)^bit);
bit = (a&1)&(b&1) | (a&1)&bit | (b&1)&bit;
a >>= 1; b >>= 1;
}
while(count) {
revert = (revert << 1) | (T&1);
count >>= 1; T >>= 1;
}
cout << (int)revert << endl;
return 0;
}