地特三等申論題
107年
[電力工程] 計算機概論
第 一 題
📖 題組:
下圖是將一個 10 進位的小數 0.125 轉換為 2 進位的小數 0.001 的過程的示意圖,其結束條件為「乘上 2 後小數部分等於 0」。(每小題 5 分,共 25 分) (一)如果要將一個 10 進位的小數 0.6875 轉換為 2 進位的小數,請你也同上圖一樣,繪圖表示這個過程。 (二)如果要將一個 10 進位的小數 0.3 轉換為 2 進位的小數,請你也同上圖一樣,繪圖表示這個過程。請問會發生什麼困難? (三)請問使用 IEEE-754 的實數表示法後,會不會有誤差?為什麼? (四)上述方法可以推廣轉換到其它進位。如果要將一個 10 進位的小數0.65625 轉換為 16 進位的小數,請你也同上圖一樣,繪圖表示這個過程。 (五)上述方法的結束條件若為「乘上 2 後小數部分等於 0」顯然會造成問題,請問結束條件應該如何修正?
下圖是將一個 10 進位的小數 0.125 轉換為 2 進位的小數 0.001 的過程的示意圖,其結束條件為「乘上 2 後小數部分等於 0」。(每小題 5 分,共 25 分) (一)如果要將一個 10 進位的小數 0.6875 轉換為 2 進位的小數,請你也同上圖一樣,繪圖表示這個過程。 (二)如果要將一個 10 進位的小數 0.3 轉換為 2 進位的小數,請你也同上圖一樣,繪圖表示這個過程。請問會發生什麼困難? (三)請問使用 IEEE-754 的實數表示法後,會不會有誤差?為什麼? (四)上述方法可以推廣轉換到其它進位。如果要將一個 10 進位的小數0.65625 轉換為 16 進位的小數,請你也同上圖一樣,繪圖表示這個過程。 (五)上述方法的結束條件若為「乘上 2 後小數部分等於 0」顯然會造成問題,請問結束條件應該如何修正?
📝 此題為申論題,共 5 小題
小題 (一)
如果要將一個 10 進位的小數 0.6875 轉換為 2 進位的小數,請你也同上圖一樣,繪圖表示這個過程。
思路引導 VIP
本題測驗「十進位小數轉二進位」的乘二取整法。解題關鍵在於將十進位小數不斷乘以 2,依序取出乘積的整數部分作為二進位小數,再將剩餘的純小數部分繼續乘 2,直到小數部分為 0 為止。作答時需依照題意,使用純文字排版(ASCII Art)來模擬原題目圖片中的視覺流程結構。
小題 (二)
如果要將一個 10 進位的小數 0.3 轉換為 2 進位的小數,請你也同上圖一樣,繪圖表示這個過程。請問會發生什麼困難?
思路引導 VIP
面對十進位小數轉二進位的題目,直接使用「乘積取整法」(乘2取整數)進行計算。當計算幾步後發現小數部分出現重複數值(如0.6)且無法歸零時,即可切入重點,點出系統將面臨「無限循環」與「精確度誤差」等困難。
小題 (三)
請問使用 IEEE-754 的實數表示法後,會不會有誤差?為什麼?
思路引導 VIP
看到這題應先聯想 IEEE-754 的硬體限制(固定位元數:如單精度32位元或雙精度64位元),並結合前一小題(0.3 轉換為二進位會產生無限循環小數)的現象。推導出因為儲存空間有限,面對無限循環或過長的小數時必須進行截斷或捨入,從而導致誤差的產生。
小題 (四)
上述方法可以推廣轉換到其它進位。如果要將一個 10 進位的小數0.65625 轉換為 16 進位的小數,請你也同上圖一樣,繪圖表示這個過程。
思路引導 VIP
看到將10進位小數轉換為任意進位,應立即聯想到「乘基數取整數法」。此題欲轉換為16進位,故基數為16,每次將小數部分乘上16,取出整數部分作為該位數的值(需注意10對應A,以此類推),直到小數部分為0為止。
小題 (五)
上述方法的結束條件若為「乘上 2 後小數部分等於 0」顯然會造成問題,請問結束條件應該如何修正?
思路引導 VIP
考生看到此題應聯想十進位轉二進位時的「無限循環小數」現象(如0.3),從而發現僅用「小數部分為0」作為結束條件會導致無窮迴圈。解題時必須結合計算機體系結構中「暫存器與記憶體儲存空間有限」的觀念(如IEEE-754的尾數位數限制),提出加入「精確度上限」或「最大位數限制」作為中斷條件。