本题要求:
昨天写了2个数相加,进来让我们来用位操作符写2个数相减吧,给定2个数a,b,计算a-b
输入格式:
a b
输出格式:
a-b的值
输入样例:
155 152
输出样例:
3
解题思路 :
相减就是加上这个数的相反数
用按位取反,再加1,就是这个数的相反数啦。
代码 :
#include <iostream>
using namespace std;
int add(int a, int b) {
if (b == 0) {
return a;
}
int s = a ^ b;
int c = (a & b) << 1;
return add(s, c);
}
int del(int a, int b) {
return add(a, add(~b, 1));
}
int main() {
int a, b;
cin >> a >> b;
cout << del(a, b) << endl;
return 0;
}