數據的溢出、飽和、截斷

溢出:指給某個變量賦值時,超出了該類型變量所能表達的範圍,比如:

unsigned char a;
a = 260;//a的取值範圍是0~255,使a=260就會導致數據溢出,a最終得到的是一個錯誤的值;

飽和:指給某個變量賦值時,超出了該類型能表達的範圍,如果採取飽和策略,就會讓該變量等於一個最大值或者最小值,比如:

unsigned char a;
a = 260;//a溢出了,如果採取飽和策略則a的最終結果是255

截斷:指給某個變量賦值時,超出了該類型能表達的範圍,如果採取截斷策略,則變量只保留數據中低字節的數據,高字節的數據則會丟棄,比如

unsigned char a;
a = 260;//如果採取截斷策略,260 = 0x0104,則a的最終結果是4;

這裏強調一下,c語言中數據發生溢出後,默認採取的是截斷策略。

發佈了14 篇原創文章 · 獲贊 3 · 訪問量 6493
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章