典型的整型溢位行為

2021-09-16 18:29:48 字數 743 閱讀 3952

假設我們有兩個變數s_v(short)和us_v(unsigned short)分別設定為最大的short值,將兩個變數值都加1,看下會出現什麼結果; 然後將兩個變數s_v(short)和us_v(unsigned short)分別設定為最小的short值,將兩個變數值都減1,看下會出現什麼結果。

#include "iostream";

#define zero 0;

int main()

輸出結果:

將變數值 s_v和us_v 設定成最大的short值

s_v = 32767

us_v = 32767

將變數值 s_v和us_v 都加1 結果

s_v = -32768

us_v = 32768

-----------------------------------------32768

將變數值 s_v和us_v 設定成最小的short值

s_v = 0

us_v = 0

將變數值 s_v和us_v 都減1 結果

s_v = -1

us_v = 65535

示意圖

以上可以看出,這些整型符號的行為就像乙個圓,如果超越了限制,其值將為範圍另一端的值。

0026 整型資料的溢位規律

include intmain for short i 32767 a 0 a 5 i a for char i 127,a 0 a 5 i a for char i 128 a 0 a 5 i a 輸出結果 2147483647 溢位 0 2147483648 溢位 1 2147483647 溢位...

C語言的整型資料的溢位

本文介紹c語言中的整型資料的溢位情況。示例 如下 include include include int main 上述 的執行結果如下 sizeof a is 4 sizeof int is 4 integer b 2147483648 binary b 100000000000000000000...

利用口訣記避免整型溢位

口訣 296兩巨集兩頭 這裡我解釋一下這個口訣,29 表示整型數的上限大約為2 109 6 表示浮點數的有效位為6位 兩巨集 分別表示 max型別巨集和flt epsilon巨集 其中,表中flt max和flt min分別代表float所能儲存的最大範圍和最小範圍。flt dig代表的是float...