赞
踩
不使用运算符 +
和 -
,计算两整数之和
不使用 +
和 -
,那就只能想到用位运算来处理了。思路如下:
^
(异或运算),可以得到两个数在相同位上数值不同的相加结果0
,代表两数的所有位都是不同的数值,不需要进位,那么第一步得到的结果就是最终的结果0
,代表有位要进位,那么需要将这个结果往左移一位0
,即得到的就是正确的结果public int getSum(int a, int b) {
while (b != 0) {
int t = a^b;
b = (a&b)<<1;
a = t;
}
return a;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。