11
Q
沒有溢出的減法?
A
回答
8
要回答你的第一個問題,爲0x80000000(2,147,483,648)代表符號整數最小的32位值。 2,147,483,647是最大值。當使用Two's Complement存儲時,最大值的大小比最小值的大小小1。單憑(-y)
不能代表超過最大值(1)。的(x-y)
最終整數值在範圍內(考慮到x
是負的),並且可以通過一個32位的整數來表示。
要回答你的第二個問題,減法是通過轉換數量減去到其加法逆實現。鑑於溢出的可能性在這種情況下,你的編譯器可以通過執行-((-x)+y)
得到正確的結果爲(x-y)
。然而,這是純粹的猜測(這是我能想到的唯一安全方法)。
相關問題
- 1. 在x64上沒有溢出溢出
- 2. ActionBar溢出沒有出現
- 3. 爲什麼減法與static_cast溢出?
- 4. MIPS與溢出相乘,然後減法
- 5. 減2負整數(補)從來沒有溢出
- 6. jqGrid沒有正確溢出
- 7. 溢出滾動沒有隱藏它溢出的內容
- 8. 有沒有辦法隱藏垂直溢出的表格?
- 9. JScrollPane沒有出現,元素溢出
- 10. 溢出沒有出現在動作條
- 11. ActionBarSherlock項目沒有出現在溢出
- 12. Hadoop - 減少溢出記錄的數量
- 13. 溢出沒有足夠的流暢
- 14. 似乎沒有理由的VBA溢出
- 15. 沒有寬度的隱藏溢出
- 16. 絕對的div沒有溢出
- 17. f32沒有實施減法?
- 18. 有沒有辦法讓跨平臺溢出:滾動
- 19. 有沒有辦法在mysql中檢測溢出?
- 20. 有沒有辦法在NSToolbar上檢測溢出
- 21. 有沒有辦法監聽div溢出事件?
- 22. 有沒有辦法讓行在引導程序中溢出
- 23. 有沒有辦法使用HTML溢出降價表?
- 24. 在x86中的進位/溢出和減法
- 25. 溢出檢測減去2個多頭
- 26. 溢出隱藏不會削減文本
- 27. 如何減少溢出分區css
- 28. 內容隱藏沒有溢出隱藏
- 29. mdl步進器沒有響應溢出
- 30. 在C#中int沒有溢出異常?
你怎麼知道它呢? – lindelof
「計算機系統,程序員的角度」問題的解決方案2.32(第87頁) 」 ......我們將有-y也等於三甲基銦等功能tadd_ok會考慮那裏是負溢出隨時x爲負。在事實上,xy不會因這些情況而溢出......「 – Yuu