代码:
1 #include <cstdio> 2 3 int add(int a, int b) { 4 if(a == 0 || b == 0) { 5 return a ^ b; 6 } 7 return add( (a&b) << 1, a ^ b); 8 } 9 10 int nagetive(int x) { 11 return add(~x, 1); 12 } 13 14 int sub(int a, int b) { 15 return add(a, nagetive(b)); 16 } 17 18 int mul(int a, int b) { 19 int ans = 0; 20 while(b) { 21 if(b & 1) 22 ans = add(ans, a); 23 a <<= 1; 24 b >>= 1; 25 } 26 return ans; 27 } 28 29 int div(int a, int b) { 30 int ans = 0; 31 for(int i = 31; i >= 0; i--) { 32 if( (a >> i) >= b ) { 33 ans = add(ans, 1 << i); 34 a = sub(a, b << i); 35 } 36 } 37 return ans; 38 } 39 40 int main() { 41 int a = 3, b = 4; 42 printf("%d ", add(a, b)); 43 printf("%d ", sub(a, b)); 44 printf("%d ", mul(a, b)); 45 printf("%d ", div(a, b)); 46 }