超過int型範圍的數如何表示?使用者831787486587342020-02-28 03:11:46

在c語言中,int是用兩個位元組表示的,範圍是-32768到+32767,超過這個範圍的就不能表示了,只能用long int來表示。從C語言的內部處理機制來說,int型數超出範圍(溢位)被認為是一個正常現象,只會產生錯誤的計算結果或邏輯錯誤,而不會觸發資料溢位的異常。因此,為了避免因為整數溢位而產生程式邏輯或計算錯誤,程式設計師必須自行檢測可能出現的溢位或者確保不會出現資料溢位的情況。C語言對於int型別資料超出範圍的處理,只有一個最簡單的原則:截斷處理,即超出int位長度範圍的高位元組被自動截掉。比如,假設int長度為16位的情況下,以下程式碼:int a=0X77FFFFL; /* 由於超出範圍,高位的77將被自動截掉,實際的a將會等於0xFFFF */++a; /* a自增後,將超出範圍,高位的1被截掉,實際a=0 */