本题要求:
昨天写了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;
}
转载请注明原文地址: https://ju.6miu.com/read-672807.html