跳至內容

整數溢位

文出維基大典
整數溢位之理,可譬諸計程儀之「迴環」。圖示諸位皆九,進一則連動歸零。因無高位(百萬位)可承,計數遂復歸於零。此即「迴環」,異於「飽和」

電腦程式之中,所謂整數溢位者,謂算術運算所得之數,逾越位元所能容之範也。或溢於極大之上,或潰於極小之下,皆屬此類。

今之算術,多宗二進之法記數,雖亦有十進者,然非主流。本文專述二進之理,他法亦可類推。

電腦存數之列陣,可釋作「無號整數」其值自零起至某極大數,或「有號整數」其值可正可負。有號者,常以兩儀補數法記之,以首位定其陰陽零爲正,一爲負

試以三十二位32-bit之字長為例:

  1. 無號整數:值自,即
  2. 有號整數:值自

溢位既生,所存之數必異於實算之值。常見者,其果若取模於為字長之位數,即所謂「迴環」也。

運算之際,算器常設旗標以示溢位之發。然於繪圖核西字GPU訊號核DSP等專用算器,或支援飽和運算。此法不作迴環,乃行「鎖限」。溢於大者以此限爲極大,潰於小者以此限爲極小。倘撰碼者未之察,整數溢位必損程式之穩固,甚或招致安危之患。