**:程式設計中無窮的表示
int不能表達真正的無窮大或者無窮小。
在c語言中,int為整型型別,根據不同平台不同,有16位(2位元組)和32位(4位元組)兩種,其中32位int為目前主流。
無論哪種int型別都有其表達範圍,其中
16位int能表示的範圍為-32768~+32767
32位int能表示的範圍為-2147483648~+2147483647
從這個可以看出,int是無法表達真正的無窮大和無窮小的。
但數學中的無窮大和無窮小是指一種概念上存在實際上永遠無法達到的數值,這樣在程式設計中,就可以根據程式要求使用一些值來替代無窮大和無窮小的概念。
一般有如下兩種情況:
1 程式中對處理的資料規模有限制,比如程式中輸入的數值只在0~100之間,那麼可以設定無窮大為101,而無窮小為-1。因為它們也是在使用中無法達到的值。
2 程式中對資料規模沒有明確的規定。但是既然應用的int型別,就必須是int型別可以容納的,否則出現溢位就可能導致錯誤。 這樣,可以用int所能表示的最大值和最小值用做無窮大和無窮小。
比如在32位情況下,無窮小可以是-2147483648,無窮大是2147483647。
如此長的一段資料是很難記憶的,由計算機對整型資料的儲存原理可以得知,這兩個數值的二進位制值分別為0x80000000和0x7fffffff。
類似的在16位下,無窮大為0x7fff,無窮小為0x8000。
程式設計中無窮的表示
int不能表達真正的無窮大或者無窮小。在c語言中,int為整型型別,根據不同平台不同,有16位 2位元組 和32位 4位元組 兩種,其中32位int為目前主流。無論哪種int型別都有其表達範圍,其中 16位int能表示的範圍為 32768 32767 32位int能表示的範圍為 2147483648...
程式設計中的無窮大
在網上看別人 的時候,經常會看到他們把inf設為0x7fffffff,因為這是32 bit int的最大值。如果這個無窮大只用於一般的比較 比如求最小值時min變數的初值 那麼0x7fffffff確實是乙個完美的選擇。if d u w u v 如果u,v之間沒有邊,那麼w u v inf,如果我們的...
程式設計中無窮大的設定
很多人可能設為0x7fffffff,這個數的確是32 bit int的最大值,符號位為0,其他的都是1 但在很多情況下,0x7fffffff會出現錯誤,比如溢位,這樣兩個無窮大數相加會變成負數,還有如在做dijkstra求最短路時,當做鬆弛操作,判斷if d u w u v 1.為了盡量避免以上的錯...