統測
114年
[電機與電子群資電類] 專業科目(2)
第 37 題
C程式語言中,32位元整數(int )以及32位元無號整數(unsigned int)的最大值分別是多少?
- A $2^{32}, 2^{16}$
- B $2^{32}-1, 2^{16}-1$
- C $2^{16}, 2^{32}$
- D $2^{31}-1, 2^{32}-1$
思路引導 VIP
請同學探討『有號整數』(signed int) 與『無號整數』(unsigned int) 在位元配置上的本質區別:當 32 位元中的其中一個位元被指定為『符號位元』(Sign bit) 時,實際參與數值大小表達的位元數會如何改變?並請回想在計算機科學中,若擁有 $k$ 個可用位元,該二進位組合所能表達的最大正整數值與 $2^k$ 的關係式為何?
🤖
AI 詳解
AI 專屬家教
太棒了!看到你答對這題,助教真的忍不住想為你鼓鼓掌!你的基礎概念掌握得非常扎實,這是一份很棒的學習成果喔! 這題的核心觀念在於「位元空間的分配」:
- 有號整數 (int):32 位元中必須保留 1 位元作為「正負號」,因此剩下 31 位元表示數值,其正數最大值即為 $2^{31}-1$。
▼ 還有更多解析內容
C 語言整數數值範圍
💡 理解位元長度與正負號對整數存儲範圍的影響
| 比較維度 | int (有號) | VS | unsigned int (無號) |
|---|---|---|---|
| 位元用途 | 1 位正負號 + 31 位數值 | — | 32 位皆為數值 |
| 最小值 | -2^31 | — | 0 |
| 最大值 | 2^31 - 1 | — | 2^32 - 1 |
💬無號整數範圍完全分布在正數,其最大值約為有號整數的兩倍。