日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

位运算求a+b

發(fā)布時間:2025/4/5 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 位运算求a+b 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

位運算

給出兩個整數(shù) a 和 b, 求他們的和。

挑戰(zhàn)

顯然你可以直接 return a + b,但是你是否可以挑戰(zhàn)一下不這樣做?(不使用+++等算數(shù)運算符)

鏈接linkcode題目:a+b

分析
主要利用異或運算來完成,異或運算有一個別名叫做:不進位加法,那么a ^ b就是a和b相加之后,該進位的地方不進位的結果,然后下面考慮哪些地方要進位,自然是a和b里都是1的地方, a & b就是a和b里都是1的那些位置,a & b << 1 就是進位之后的結果。
所以:a + b = (a ^ b) + (a & b << 1),令a' = a ^ b, b' = (a & b) << 1可以知道,這個過程是在模擬加法的運算過程,進位不可能一直持續(xù),所以b最終會變?yōu)?。因此重復做上述操作就可以 求得a + b的值。

class Solution { /* * param a: The first integer * param b: The second integer * return: The sum of a and b */ public int aplusb(int a, int b) {while (b != 0) {int _a = a ^ b;int _b = (a & b) << 1;a = _a;b = _b;}return a; } };

總結

以上是生活随笔為你收集整理的位运算求a+b的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。