赞
踩
举例说明:a = 4, b = 6, 计算a+b。
a = 4 0100
b = 6 0110
进位和(&):0100 = 4
非进位和(异或):0010 = 2
则 a + b =2 + 4<<1
----------------------------------------------
2 0010
4<<1 1000
进位和(&):0000 = 0
非进位和(异或):1010 = 10
当进位和为 0 时,就可以得到 a + b 的和 10。
- public class Cal_add {
-
- public int ADD(int num01, int num02){
-
- //进位
- int isCarray = num01 & num02;
- //非进位
- int noCarray = num01 ^ num02;
-
- if(isCarray != 0){
- return ADD(noCarray,isCarray<<1);
- }
- return noCarray;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。