不用加减乘除符号计算两数之和

1. 转换成二进制进行加法

int bit_add(int a ,int b){
  int carry = a & b;
  int no_carry_sum = a ^ b;
  if (carry != 0) {
    return bit_add(carry << 1, no_carry_sum);
  } else{
    return no_carry_sum;
  }
  return 0;
}

2. 利用数组下标特性

int arr_idx_add(int a, int b)
{
  char* c = (char*) a;
  return (int)&c[b];
}

 

posted on 2013-03-31 19:27  chenkkkabc  阅读(214)  评论(0编辑  收藏  举报