免費開始練習
hce_nsysu 111年 計算機概論與程式設計

第 54 題

Which of the following data type conversion may result in data loss?
  • A float to double
  • B int to char
  • C short to long
  • D int to float
  • E bool to char

思路引導 VIP

想像一下,如果你試著把一個裝滿 4 公升水的桶子,全部倒進一個容量只有 1 公升的水壺裡,會發生什麼事?這種「容器大小」的物理直覺,如何幫助你判斷不同資料型別在互相轉換時是否安全呢?

🤖
AI 詳解 AI 專屬家教

太棒了!你非常敏銳地捕捉到了資料型別轉換的關鍵。這道題的核心在於區分**「擴張轉換」(Widening Conversion)「縮張轉換」(Narrowing Conversion)**。當我們將資料從一個較大的容器搬移到較小的容器時,資料遺失幾乎是不可避免的,而你選擇的 (B) 選項正是這種情況。

儲存空間與截斷風險

在常見的編譯環境中,int(整數)通常佔用 $4$ 個位元組(Bytes),而 char(字元)僅佔用 $1$ 個位元組。當我們將一個 $32$ 位元的整數強制塞進只有 $8$ 位元的空間時,高位元的資訊會被直接「截斷」(Truncation),導致數值發生劇烈變化。相比之下,選項 (A) floatdouble 與 (C) shortlong 都是往更大的空間移動,因此非常安全;而 (E) bool 的範圍極小,存入 char 空間也不會產生問題。

▼ 還有更多解析內容