第三題: 一個數值在儲存到電腦記憶體內部之前,會先被轉換成二進位系統。一個數值使用定點法(fixed-point)表示儲存成一個整數,另外,以浮點法(floating-point)表示將一個數值儲存成一個實數。請回答下列問題:
(一)一個整數儲存在記憶體中通常是使用定點法表示,其中,2 補數(2’s complement) 是常在計算機科學中用來儲存一個 n 位元記憶體位置的有號(Signed)整數。請問:
為了將負整數 -28 儲存至 8 位元的記憶體位置,需按照以下步驟進行轉換:
首先,將 28 轉換為二進位表示:
2810=11100228_{10} = 11100_{2}2810=111002
為了方便處理,先將 11100 補足到 8 位元:
2810=00011100228_{10} = 00011100_{2}2810=000111002
將 00011100 的每個位元取反,得到 1 補數:
1補數:1110001121 補數:11100011_{2}1補數:111000112
將 1 補數 11100011 加 1,得到 2 補數:
111000112+12=11100100211100011_{2} + 1_{2} = 11100100_{2}111000112+12=111001002
因此,使用 2 補數表示法,負整數 -28 儲存在 8 位元記憶體中的表示為:
−2810=111001002-28_{10} = 11100100_{2}−2810=111001002
| 步驟 | 過程 | 結果 |
|---|---|---|
| 絕對值轉換 | 28 的二進位表示 | 00011100 |
| 取反(1 補數) | 取每位元的反 | 11100011 |
| 加 1(2 補數) | 1 補數 + 1 | 11100100 |
使用 2 補數表示法,將負整數 -28 儲存到 8 位元的記憶體位置時,結果為二進位數 11100100。這一過程涉及將正數部分轉換為二進位、取反、再加 1,以得到最終的 2 補數表示。這種方法使得電腦能夠有效地處理有號整數的運算。