不用加减乘除做加法

很容易想到为二进制的与或非。

加法分为三步:

1 各位相加不进位 0 + 0 =0, 0+1 = 1,1+0=1,1+1=1,很明显是异或运算

2 进位 1+1 =10进位,其余均不进位 ,进行左移动一位

3 一直循环

代码:

#include <iostream>

using namespace std;

int sum(int data1,int data2){

	int sum,carry;
	do{
		sum = data1 ^ data2;
		carry = (data1 & data2)<<1;
		data1 = sum;
		data2 = carry;
	}while(carry != 0);

	return data1;
}

void main(){

	cout <<sum(6,7);
	
}

运行结果:

不用加减乘除做加法_第1张图片

你可能感兴趣的:(不用加减乘除做加法)