在不使用算术运算符的前提下实现数的加法运算,首先应该想到的是用位运算符,当所有数的二进制数相加不会产生进位的情况下,返回的二进制数就是真值。当相加的结果产生进位时,将两个数进行相与操作,并对两个数进行异或操作并左移一位,重复上述模拟进位的过程,直到不出现进位。
int aplusb(int a, int b) { // write your code here, try to do it without arithmetic Operators. if ( a == 0) { return b; } if( b == 0) { return a; } else { int c = a ^ b; int d = (a & b)<<1; return aplusb(c,d); } }新闻热点
疑难解答