我和一个朋友正在反复玩脑筋急转弯,但我不知道如何解决这个问题。我的假设是某些按位运算符是可能的,但不确定。
在 C 语言中,使用按位运算符:
#include<stdio.h>
int add(int x, int y) {
int a, b;
do {
a = x & y;
b = x ^ y;
x = a << 1;
y = b;
} while (a);
return b;
}
int main( void ){
printf( "2 + 3 = %d", add(2,3));
return 0;
}
XOR (x ^ y
) 是不带进位的加法。(x & y)
是每一位的进位。(x & y) << 1
是每一位的进位。
循环不断添加进位,直到所有位的进位为零。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)