1樓:榴蓮泡芙
先說下前提:Swap的兩個數一定得是相同型別才有意義。
針對題主的問題:先說結論,這是個巧合。對於無符號整數不適用。
這個巧合僅針對兩個相同字長的有符號型別有效,原因是計算機補碼加法的運算規則導致的。
避免溢位的其他做法:
用臨時變數或者位運算:
// 臨時變數
short tmp = a; a = b; b = tmp;
// 位運算
a ^= b; b^= a; a ^= b;
更好的做法是用庫函式
std::swap(a, b);
補碼加法原理可以參考:
計算機補碼運算背後的數學原理是什麼? - 凌之峰的回答 - 知乎 https://www.
庫函式的實現可以參考:
c++ STL中的swap()如何實現? - 知乎 https://www.
2樓:
因為計算機中的整數加法是符合以下規律的:
x = x + y - y
兩數相加溢位之後,又減去其中一數,自然會「溢位」回去。這沒什麼奇怪的。
我想挽回她 能幫幫我嗎
已重置 從你的描述看得出來,現階段她對你很牴觸,對於戀愛這個詞也很牴觸,所以要想挽回的話,你就別再重複復合這件事情了。因為再多的承諾,都比不得實實在在的行動。這時候第一步,你該做的是理清楚分手的原因,從之前的每一次吵架,每一次鬧矛盾找出自己的毛病 沒給她自由 太過纏著她 猜不准她的想法 異地沒做到陪...
朋友們能幫我分析一下嗎,這是我想多了嗎?
gaxs0918 其實每個家庭或多或少都會受外界影響,但是以後生活是你們兩個生活,不是跟他父母,姐姐。當然以後肯定多少會受他們的影響。在人際交往中會遇到各種各樣的人,形形色色的人,有人對你真心好,有人表面一套背地一套,有人直接面對面對怒。但是對不一樣的人方式不一樣,真心對真心,假意對假意。有人適合捧...
想專公升本,但不知道選什麼專業,能幫幫我嗎?
陝西西培專公升本 對於準備參加專公升本的小夥伴們,專業選擇是乙個既重要又繁瑣的事情。西西建議你,盡量選擇與自己專科專業一致的專業,備考內容好理解,考試通過率較高。如果想跨專業報考,可以根據自己的職業規劃或者考研方向。但是有一點需要注意,雖然陝西專公升本考試允許跨專業,允許跨考的只能是相近的專業,陝西...