溢位、上溢、下溢
overflow:溢位
overflow:上溢
underflow:下溢
stack underflow:堆疊下溢;
1. 概念
上溢與下溢
是當一個超長的資料進入到緩衝區時,超出部分被寫入上級緩衝區,上級緩衝區存放的可能是資料、上一條指令的指標,或者是其他程式的輸出內容,這些內容都被覆蓋或者破壞掉。可見一小部分資料或者一套指令的溢位就可能導致一個程式或者作業系統崩潰。
與之對應的就是下溢,下溢是當一個超長的資料進入到緩衝區時,超出部分被寫入下級緩衝區,下級緩衝區存放的是下一條指令的指標,或者是其他程式的輸出內容。
其他解釋
上溢:超出所能表示的最大正數
下溢:超出所能表示的最小負數
如 16 位整數範圍為:-32768(−215 -2^{15}−2
15
) ~ +32767(215−1 2^{15}-12
15
−1),則當 32767 再加1時,發生上溢;當 -32768 再減 1 時,發生下溢。
2. 溢位的判斷
兩數相加溢位的判斷:
同號時才可能溢位,同為正,有可能上溢,同為負,有可能下溢;
int add(int a, int b) {
int c = a + b;
if ((a^b) & INT_MIN == 0) {
if ((c^a) & INT_MIN) {
c = (a<0) ? INT_MIN : INT_MA;
}
}
}
---------------------
作者:Inside_Zhang
來源:CSDN
原文:https://blog.csdn.net/lanchunhui/article/details/52083273
版權宣告:本文為博主原創文章,轉載請附上博文連結!
相關文章
- 64位Linux下的棧溢位Linux
- 阿里大佬講解Java記憶體溢位示例(堆溢位、棧溢位)阿里Java記憶體溢位
- 溢位 省略號 …
- StackOverFlowError(棧溢位)Error
- 整數溢位
- Java棧溢位|記憶體洩漏|記憶體溢位Java記憶體溢位
- safari Iframe 溢位 body
- 堆溢位之OverlappingAPP
- 記憶體溢位記憶體溢位
- Pwn-棧溢位
- 文字溢位顯示
- 棧溢位基礎
- Windbg下使用dump分析記憶體溢位記憶體溢位
- css 盒子溢位問題CSS
- Java記憶體溢位Java記憶體溢位
- CSS 元素溢位是什麼?CSS
- 堆溢位的unlink利用方法
- 堆溢位學習筆記筆記
- Linux kernel 堆溢位利用方法Linux
- 檢查型別是否溢位型別
- 緩衝區溢位實驗
- StackOverflowError堆疊溢位錯誤Error
- [原創]pwn棧溢位2
- 緩衝區溢位攻擊
- 聊聊資料溢位的事
- 棧溢位基礎及利用
- 004-盒模型及文字溢位模型
- CSS解決文字溢位問題CSS
- SMT整型溢位漏洞分析筆記筆記
- css文字溢位用省略號表示CSS
- 智慧合約安全之整型溢位
- 緩衝區溢位小程式分析
- ORACLE ASM磁碟組空間溢位OracleASM
- Linux堆溢位漏洞利用之unlinkLinux
- java.sql.SQLException: 數字溢位JavaSQLException
- long long的加法溢位情況
- Linux kernel 堆溢位利用方法(二)Linux
- Linux kernel 堆溢位利用方法(三)Linux