#include <iostream>
using namespace std;
int x, y;
void swap(int a, int b) {
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
int add_(int a, int b) {
while(b) {
auto t = (a&b) << 1;
a = a ^ b;
b = t;
}
return a;
}
int neg(int a) {
return add_(~a, 1);
}
int minus_(int a, int b) {
return add_(a, neg(b));
}
int multi_(int a, int b) {
int res = 0;
while(b) {
if(b&1) {
res = add_(res, a);
}
a <<= 1;
b >>= 1;
}
return res;
}
int divide_(int a, int b) {
if(a < b) return 0;
int cnts = 1, tmp = b;
while(tmp+tmp <= a) {
cnts = add_(cnts, cnts);
tmp = add_(tmp, tmp);
}
return add_(cnts, divide_(a-tmp, b));
}
int main() {
cin >> x >> y;
cout << "add = " << add_(x, y) << endl;
cout << "minus = " << minus_(x, y) << endl;
cout << "multi = " << multi_(x, y) << endl;
cout << "divide = " << divide_(x, y) << endl;
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)