LeetCode #338. Counting Bits 使用位元做加減

LeetCode #338. Counting Bits

題目:計算a,b的加總,但是禁止使用 +、- 符號。

設A=4(0100),B=5(0101)。

1.對A與B值做 or ,得0001

2.對A與B值做 and 然後將 and 的部份進位,得0100,進位(左移1000)。

3.將新A值(0001)與新B值(1000)做or,得(1001)。

4.將新A值(0001)與新B值(1000)做and,得(0000)。

5.進位已完成(已達到0(0000))。

6.結果為1001(9),計算完成。

public class Solution {
    public int GetSum(int a, int b) 
    {
       int temp = 0;
            while (b != 0)
            {
                temp = a ^ b;
                b = a & b;
                b = b << 1;
                a = temp;
            }
            return a;
    }
}

本頁面為一點點累積學習寫程式之路。

許多資訊不是正確、或只是自己看的懂得。

如果不小心點進來誤導了您,還真的不好意思。