C 如何定義無窮大和無窮小

2022-06-07 20:30:15 字數 892 閱讀 3658

int型變數的取值範圍:[-2^31, 2^31 - 1] -> [-2147483648, 2147483647]

0x7fffffff = 2147483647 = (2^31 - 1) = (1 << 31) - 1  

0x3fffffff = 1073741823 = (2^30 - 1) = (1 << 30) - 1

0x3f3f3f3f = 1061109567

0x7fffffff = 2147483647,恰好等於int型變數的上界,所以在一些情況下用0x7fffffff表示無窮大是乙個很好的選擇

但是在求圖的最短路徑時,往往需要進行無窮大數的比較而0x7fffffff再加上乙個正數會溢位,成為負數,所以一般情況下,定義為0x3fffffff或者0x3f3f3f3f 就能滿足要求

無窮小:0xc0c0c0c0 = -1061109568

定義方式:

#define inf1 0x7fffffff

#define ine2 0x3fffffff

#define inf3 0x3f3f3f3f

#define inf4 0xc0c0c0c0 //

無窮小const

int inf5 = 0x7fffffff

;const

int inf6 = 0x3fffffff

;const

int inf7 = 0x3f3f3f3f

;const

int inf8 = 0xc0c0c0c0; //

無窮小

或者如果是int,用int_max表示正無窮,int_min表示負無窮,需要包含標頭檔案limits.h;

如果是double,用dbl_max表示正無窮,dbl_min表示負無窮,需要包含檔案float.h。

無窮大無窮小

如果問題中各資料的範圍明確,那麼無窮大的設定不是問題,在不明確的情況下,很多程式 員都取0x7fffffff作為無窮大,因為這是32 bit int的最大值。如果這個無窮大只用於一般的比較 比如求最小值時min變數的初值 那麼0x7fffffff確實是乙個完美的選擇,但是在更多的情況下,0x7fff...

memset 賦初值為無窮大和無窮小

如果問題中各資料的範圍明確,那麼無窮大的設定不是問題,在不明確的情況下,很多程式設計師都取0x7fffffff作為無窮大,因為這是32 bit int的最大值。如果這個無窮大只用於一般的比較 比如求最小值時min變數的初值 那麼0x7fffffff確實是乙個完美的選擇,但是在更多的情況下,0x7ff...

高數 無窮小與無窮大

無窮小 定義 如果函式f x 在x x0 或者x 時極限為0,則稱函式f x 為當x x0 或者x 時的無窮小。特別的 以0為極限的數列稱為當n 時的無窮小。如 lim 1 x 0 所以函式1 x為當x 時的無窮小。x lim x 1 0,所以函式x 1為當x 1時的無窮小 x 1 無窮小與函式極限...