關於此實驗
在電腦內部,每個數字、字母、圖片和聲音都以一組開關狀態儲存:開或關,也就是0或1。每個開關狀態稱為一個位元(bit)。就像十進位數中每一位的數值都是其右側一位的10倍,每個二進位數位的數值都是其右側一位的2倍:1、2、4、8、16,依此類推。切換各位的開關狀態,逐一計數並觀察進位如何傳遞;將二進位數轉換為十進位和十六進位,並了解電腦如何儲存負數。
學習目標
- 說明二進位是一種基底為2的數字系統,只使用數字0和1
- 在最多8個位元的範圍內轉換二進位數和十進位數
- 用二進位計數,並說明進位的運作方式
- 求出指定位元數所能儲存的最大數
- 將二進位轉換為十六進位,並說明溢位和二補數
使用方法
- 1使用4個位元,每次只開啟一個位元。寫下每個位元的數值。你發現了什麼規律?
- 2用4個位元表示5、9和15。你用了哪些位元?
- 3從0開始,一次又一次地按「+1」。每次都會變化的是哪個位元?變化最少的是哪個位元?
- 4用 4 位元數到 15,再按一次 +1。會發生什麼事?為什麼?
- 5切換到 8 位元。你能表示的最大數是多少?將它與 2⁸ - 1 比較看看。
- 6開啟負數。現在最左邊的位元代表什麼值?試著表示 -1 和 -128。
- 7選擇「組成數字」,完成五個目標。試著從最大的位元開始。
模型
假設
- 和一般數字一樣,書寫位元時將最高有效位元放在左邊。
- 無符號數的範圍是 0 到 2ⁿ - 1。啟用負數後,會使用二補數,最左邊一位的權值為 -2ⁿ⁻¹。
- 在最大值上加 1 會回到最小值,就像真實電腦的定長運算一樣。這稱為溢位。
- 挑戰數字來自固定序列,因此每個班級看到的目標和順序都相同。
在課堂上試試這個實驗
- Q1將二進位數 10110 轉換為十進位數。
- Q2使用 8 個位元將十進位數 45 轉換為二進位數。
- Q3要儲存不超過 1000 的數,需要多少個位元?
- Q4為什麼結尾是 1 的二進位數總是代表奇數?
- Q5在 8 位元二補數中,1111 1110 表示多少?請解釋你是如何得出答案的。
常見問題
電腦為什麼使用二進位而不是十進位?
電子開關只需要處理關閉和開啟兩種狀態時,很容易做到可靠。要區分代表十進位數字的十種不同電壓等級,則困難得多,也更容易出錯。
什麼是位元組?
一個位元組是 8 位元。它可以儲存 256 種不同的值(從 0 到 255),也可以儲存一個一般英文文字字元。
為什麼十六進位很有用?
很長的二進位數很難閱讀。因為 16 = 2⁴,每四個位元恰好對應一個十六進位數字,所以程式設計師會用十六進位簡寫二進位數,例如色碼 #FF8800。