電腦算術
在C語言中,32位元無號整數(unsigned int)的 0 減去 1 的結果為下列何者?
- A−1
- B4294967295
- C維持0不變
查看答案與解析
正確答案:B. 4294967295
無號整數沒有負數,C語言規定結果以除以 2³² 的餘數處理(繞回)。0 − 1 會成為 2³² − 1 = 4294967295,其位元串全為1。因此,若在無號變數上將「每次減1直到i成為0」的迴圈寫成 i >= 0,條件會恆為真而永遠無法結束。無號數無法表示 −1,也不會停在0(飽和)。
- A. 無號整數無法表示負數。
- B. 正確。繞回為 2³² − 1 = 4294967295。
- C. 不會有停在0的飽和。