Java 加法的位运算实现原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38002337/article/details/79510341

Java 加法的位运算实现原理

加法:a+b 例如 2+2 即10  10

1、由a^b可得按位相加后没有进位的和及原位和;10^10=0

2、由a&b可得可以产生进位的地方;由(a&b)<<1得到进位后的值即进位和。(10&10)<<1=100

3、如何进位不为0,则使a=原位和,b=进位和,重复上述步骤。(0,100) 原位和:0^100=100  进位和: (0&100)<<1=0

    如何进位为0,则相加的结果为原位和;如:(0&100)<<1=0   结果为:100    4



java代码实现:

	public static int add(int a,int b) {
		int res=0;
		int xor=a^b;//得到原位和
		int forworad=(a&b)<<1;//得到进位和

		if(forworad!=0) {
			res=add(xor,forworad);//若进位和不为0,则递归求原位和+进位和
		}else {
			res=xor;
		}
		return res;
		
	}


猜你喜欢

转载自blog.csdn.net/qq_38002337/article/details/79510341