不使用 + 和 - 运算符计算两整数之和
生活随笔
收集整理的這篇文章主要介紹了
不使用 + 和 - 运算符计算两整数之和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題概述
不使用運算符 + 和 -,計算兩整數之和
思考
不使用 + 和 - ,那就只能想到用位運算來處理了。思路如下:
- 兩數進行 ^(異或運算),可以得到兩個數在相同位上數值不同的相加結果
- 兩數進行 &(與運算),可以得到哪些位該進位
- 如果與運算的結果為 0,代表兩數的所有位都是不同的數值,不需要進位,那么第一步得到的結果就是最終的結果
- 如果與運算的結果不為 0,代表有位要進位,那么需要將這個結果往左移一位
- 重復上面兩步,直到與運算結果為 0,即得到的就是正確的結果
實現代碼
public int getSum(int a, int b) {while (b != 0) {int t = a^b;b = (a&b)<<1;a = t;}return a; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的不使用 + 和 - 运算符计算两整数之和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hashmap 复制_复杂链表的复制
- 下一篇: 物体识别_小鼠新物体识别Protocol