一起talk C栗子吧(第三十四回:C語言實例--巧用溢出計算最值)
各位看官們。大家好,上一回中咱們說的是巧用移位的樣例,這一回咱們說的樣例是:巧用溢出計算最值。
閑話休提,言歸正轉。讓我們一起talk C栗子吧!
大家都知道,程序中的變量都有一個取值範圍,這個範圍也計算機和編譯器都有關系。
我們舉個實際的例
子進行說明:在32位的計算機上,假設使用4個字節存儲int類型的變量也就是說使用了32位的存儲空間。
這時int類型變量的取值範圍是:負2的32次方到正2的32次方-1,詳細的數值是-2147483648到2147483647。
假設把不在這個範圍內的數值賦值給int類型的變量,那麽就會發生溢出。這也是我們在敲代碼的時候需
要註意的地方,不然程序中發生了溢出就會導致錯誤的結果。
只是溢出有個特點:最大值加一就會由於溢
出變成最小值;反之。最小值減一就會由於溢出變成最大值。我們能夠巧妙地利用溢出的這個特點。來求
各種類型變量的最值。
看官們。正文中就不寫代碼了。具體的代碼放到了我的資源中,大家能夠點擊這裏下載使用。
在代碼中我
們計算的是int類型變量的最值。
大家能夠自己擴展。計算其他類型變量的最值。
我們當前的編程環境是這種:計算機是X86結構,操作系統為32位的Linux Mint系統,編譯器為GCC,
版本號是4.8.2.在這種編程環境下,使用4個字節存儲int類型的變量。所以得到的結果例如以下:
the min value of int is:-2147483648
the max value of int is:2147483647
假設大家的編程環境和我的不一樣,可能會得到不同的運算結果。只是有一點是能夠肯定的。假設使用4個
字節存儲int類型的變量,那麽不論在哪種環境下。都和上面的結果一樣。
各位看官,關於巧用溢出計算最值的樣例咱們就講到這裏。欲知後面還有什麽樣例,且聽下回分解。
一起talk C栗子吧(第三十四回:C語言實例--巧用溢出計算最值)