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) float 到 double 與 (C) short 到 long 都是往更大的空間移動,因此非常安全;而 (E) bool 的範圍極小,存入 char 空間也不會產生問題。
▼ 還有更多解析內容