![]() |
![]() |
![]() | |
![]() | |||
![]() |
之前,我們已經知道文字、 圖像和音訊在電腦內都以各種位元排列來紀錄。 數當然也是如此。 讀者此時應該已經能夠分辨「數」和「數字」之別, 數有它自己的位元排列規則, 當需要呈現 (輸出在監視器或印表機上) 時, 才轉換成對應數字的位元排列 (通常是 ASCII)。 這一節要認識無號整數、 整數和浮點數這三種「數」在電腦內的位元排列規則。 當然,跟以前一樣,所有位元排列都被改寫成二進制或十進制的數字, 以方便我們閱讀和書寫。
許許多多我們認為電腦「神奇」或「神秘」的表現, 都將一一在學習過程中解開。此時,我們認識了程式語言, 接著應該可以真正進入電腦之實體。而其必經之路, 或許就是真正地認識資料型態。 就像電腦所呈現的詩篇、樂章與彩繪一樣, 它只是據實將位元排列呈現在輸出裝置上, 電腦並不明白那些符號的含意、也沒有必要明白。 計算也是的,它只是根據規則操弄位元排列而已, 它並不明白操弄的含意。 之前,我們經常以擬人化說法來解釋計算機; 從現在起,我們將要比較真實地看看它究竟做了什麼?
知道基本數值資料型態的位元個數和排列規則, 以及因之而衍生的限制。 知道怎樣在不同數值資料型態間轉換資訊。 認識浮點數並明白它的某些計算上的性質。 使用程式語言來列印位元排列是比較低階的技術, 需要較多的程式語言技術才辦得到, 我們列出兩種選擇,但是讀者不必勉強。
1.19: 對位記數法在實數線上的小數觀念 | 1.26: 一些關於資料型態的故事 |
1.32: 實數化約成浮點數的規則 |
Maltab 的內建輸出模式 hex 可以讓我們很方便地觀察雙精度浮點數的位元排列。 如果讀者已經學習了 Matlab 這份套裝軟體, 請看第B講 [Matlab 線上教材] 交遊篇內《利用 Matlab 認識 IEEE 浮點數標準》前後幾節, 並跟著實驗看看。
C 語言支援所有這一講所提到的基本資料型態, 我們可以用它來寫程式,把這些基本資料型態的位元排列印出來。 如果讀者已經到達 C 語言操縱指標變數的程度, 請看第C講 [C 程式語言線上教材] 追求篇內《列印記憶體內的位元排列》前後幾節,並跟著實驗看看。
讀過課文之後,用此工具檢查是否瞭解內容。
前言(8'13") | 無號整數(6'11") | 整數(14'17") | 二進制小數與科學記數法(12'23") |
浮點數(25'12") | 浮點數計算(9'44") | 整數計算(10'54") | 資料型態(2'50") |
關於這一講內容的歷年考題。
教師或助教,請看這一講的設計理念和教學建議。 這裡還會包含一些教學經驗的交流以及某些評量的統計資料。 (如何申請教師帳號?)
製作人、 修改記錄 |
單維彰 (00/04/08) --- 02/01/21 (徐) |