c++ 不用加法实现加法
参考链接:https://www.bilibili.com/video/BV1v94y1z76m/
// test_add.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
using namespace std;
int sub(int a, int b)
{
if (!a)return b;
return sub((a & b) << 1, a ^ b);
/*
如果是100+11,即4+3
&直接为0,那么a^b就是结果,就是说,没有重复的话,的确是这样的,
如果有重复的,101+111,5+7
取共同的位,发现有值,101。
相同部分相加,就是相同部分乘以2,也就是左移一位
取不同的部分 a^b, 010,拿到两个数中不一样的部分。作为b递归调用加法。
妙啊
*/
}
int main()
{
int a = 5, b = 7;
cout << sub(a, b) << endl;
return 0;
}