誰かが私を助けてくれることを願っています。
次のアルゴリズムは、正の数が2つある場合、または正の数と負の数がある場合の両方で機能します。ただし、両方の数値が負の場合は機能しません。
誰かが私にそれがどのように可能であるか説明できますか?
void sum (int p, int q) {
int sum, carry;
carry = 1;
while (carry > 0) {
sum = p ^ q;
carry = p & q;
carry = carry << 1;
p = sum;
q = carry;
}
p = p << 1;
p = p >> 1;
printf("The result equals to %d", p);
}
みなさん、よろしくお願いします:)