您好,登錄后才能下訂單哦!
1.兩個數異或:相當于每一位相加,而不考慮進位;
2.兩個數相與,并左移一位:相當于求得進位;
3.將上述兩步的結果相加;
public static int Add(int num1,int num2) {
while (num2!=0) {
int temp = num1^num2;//異或相當于加,但不考慮進位
num2 = (num1&num2)<<1;//按位與再左移一位用來計算進位
num1 = temp;
}
return num1;
}
//遞歸版本
public static int Add2(int num1,int num2) {
if(num2==0){
return num1;
}else{
return Add(num1^num2,(num1&num2)<<1);
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。