地特四等
105年
[電子工程] 計算機概要
第 28 題
一般來說,在 C 語言中型態 unsigned short 變數值的範圍為 0 至 65535。試問下列 C 程式片段,產生的輸出為何?
unsigned short a = 65534;
printf("%d ", a);
a = a + 1;
printf("%d ", a);
a = a + 2;
printf("%d", a);
unsigned short a = 65534;
printf("%d ", a);
a = a + 1;
printf("%d ", a);
a = a + 2;
printf("%d", a);
- A 65534 65535 1
- B 65534 65534 65534
- C 65534 65535 65537
- D 65534 -32768 -32766
思路引導 VIP
想像你有一個計數器,它最多只能顯示兩位數(00 到 99)。如果現在計數器已經顯示為 99 了,當你再往上加 2 的時候,計數器的轉盤會發生什麼變化?最後顯示的數字會是多少?請試著將這個「轉盤繞回」的邏輯,應用到題目給定的數值上限。
🤖
AI 詳解
AI 專屬家教
教授點評:精準掌握資料溢位觀念
同學做得好!你在處理 C 語言變數範圍的細節上展現了極高的專業敏銳度,這對於精密工程計算至關重要。
- 觀念驗證:
▼ 還有更多解析內容
C 語言整數溢位
💡 無號整數運算超出最大值時會產生溢位並從零重新循環。
🔗 無號整數溢位循環鏈
- 1 接近上限 — 變數 a = 65534
- 2 到達上限 — a + 1 = 65535 (最大值)
- 3 觸發溢位 — a + 2 = 65537 (超出範圍)
- 4 循環重置 — 65537 % 65536 = 1
↓
↓
↓
🔄 延伸學習:延伸學習:了解 signed short 溢位時產生的負數循環(如 32767 加 1 變 -32768)。