<?php

function  AddWithoutArithmetic($num1, $num2){
 if(0 == $num2 )  return $num1;
 $sum = $num1 ^ $num2;   //异或运算
 $carry = ($num1 & $num2) << 1;     //对0加0、0加1、1加0而言,都不会产生进位,只有1加1时,会向前产生一个进位。因此两个数先做位与运算,然后再向左移动一位。
 return AddWithoutArithmetic($sum, $carry);
}


echo AddWithoutArithmetic(1,2);