跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 算術溢位 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
算術溢位
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''算術溢位'''(arithmetic overflow)抑是簡稱做'''溢位'''(overflow)是講: 一 . 佇電腦領域內底所發生的溢个條件是,執行單項數值計算時,做計算產生出來的結果是非常大的,大於暫存的記持體所會使儲存抑是表示會使有限制。 二 . 佇咧電腦領域內底,執行多項或者是累計的數值計算時,做計算產生出來的總值是非常大的,大於暫存的記持體所會使儲存抑是表示會使有限制。愛注意的是,溢位可能會佇其他的位置換。 加法器是中央處理器算是術邏輯單元中的核心之一。做長度為著 n 位的兩个兩个進位數經過'''加減的法器'''運算,得著的長度為 n 位的結果毋是正確值的時陣,咱講發生'''溢位'''。 ==檢查溢位== 大多數的電腦攏會當區別以上兩種溢位條件。做加法抑是減法的結果發生進位,著愛考量著當運算的數值佮結果攏是 unsigned numbers(初數值的時,即「正數」)型態的時陣,運算的結果就無適合使用這个數值型態。所以乎,咧執行無號數值(正數)的加法抑是減法了後檢查進位旗標是非常有路用的做法。「溢位」在運算結果為無號數值時容易發生,會當對有符號的運算數值按算出這類的情形(比如講:兩个正整數相加產生的結果為一个負數)。 所以乎,佇執行二的補數的加法抑是減法了後檢查溢位旗標是誠有路用的做法(換言之,有考慮著有號數值)。 ==控制溢位== 有幾个控制溢位的方法: 一 . 設計的:選擇正確的資料型態,尤其欲注意資料長度佮 signed / unsigned 資料符號。 二 . 迴避:事先注意指令的運作佮檢查運算的數值,凡勢會當確保計算出來的結果袂超過記憶體儲存資料的限制。 三 . 控制:當伊去予人偵測著,猶閣有佇其他的程式去完成的時陣去予檢測出來,遐爾溢位是會當予預料的。比如講:兩个位元大的兩个數值做加法計算,這種的情形上可能發生。步數想袂落來:先加低位元閣加懸位元,毋過伊若是著愛完成低位元的運算,就會產生位元加法的運算溢位,遐爾就有必要做偵測佮增加高位元的總和。通常 CPU 有支援偵測數值加法較大於暫存器大細的做法,基本上這个做法是採用狀態位元的方式。 四 . 增值:假使儲存的數值過大就會被分配給其他特定的數值,這个時陣溢位就會發生,然後傳回旗標值的時陣就會產生連紲運作的現象。檢查這个問題上有路用的方法,就是咧整體的計算結尾做一改性的檢查工課,毋是檢查每一个執行步驟。這个做法上捷用佇浮點仔硬體呼叫浮點運算器。 五 . 失覺察:這是上普遍的做法,但是這个做法會著無正確的結果,以及降低程式的安全性。 ==除零計算== 任何數除了以零的計算(Divided by zero)「 毋是呢」算講術溢位的一種。佇數學上只會使明顯算是無明確的定義(Undefined); 伊計算出來的結果干焦會當做是「無咧」值,毋是非常大的無限數值。 ==相關參見== [[分類: 待校正]]
返回到「
算術溢位
」。