正數用位值轉換。負數用講義的二補數:反轉所有位元,再加 1。沒有負號寫在二進制前面。
轉換詳細步驟
方法 A · 任何進制 → 十進制(位值相加)
- 由右向左標出整數各位的位值:基數0、基數1、基數2…
- 小數點右邊由左向右標負次方:基數−1、基數−2…
- 每位數字 × 該位位值。
- 全部乘積加起來,就是十進制。
例:10112 = 1×23 + 0×22 + 1×21 + 1×20 = 8+0+2+1 = 1110
方法 B · 十進制整數 → 基數 r(重複除法)
- 用十進制整數除以目標基數 r,記下商和餘數。
- 用新的商再除以 r,直到商變成 0。
- 餘數由下往上讀,就是答案。
- 若 r = 16,餘數 10–15 改寫成 A–F。
口訣:向下除,向上讀。例:41 ÷ 2 的餘數由下往上是 1010012。
方法 B2 · 十進制整數 → 基數 r(加法 / 權重相加)
- 列出不超過這個數的位值:rk、rk−1、…、r0。
- 從最大位值開始問:這個位值能加進去幾次?(0 到 r−1)
- 加上「數字 × 位值」,從剩下的數扣掉。
- 每一位都做完,由左到右讀數字。十六進制 10–15 寫成 A–F。
例:41 = 32 + 8 + 1 = 25 + 23 + 20 → 1 0 1 0 0 12。跟重複除法同一答案。
方法 C · 十進制小數 → 基數 r(重複乘法)
- 只取小數部分,乘以 r。
- 乘積的整數部分就是下一位數字。
- 留下新的小數部分,再乘 r。
- 重複到小數變 0,或到需要的位數。
例:0.62510 × 2 = 1.25 → 寫 1,留下 0.25;0.25×2 = 0.5 → 寫 0;0.5×2 = 1.0 → 寫 1。所以 0.1012。
方法 D · 二進制 ↔ 八進制(每 3 位一組)
- 二 → 八:由右邊開始,每 3 個位元一組;左邊不足補 0。
- 每一組當成一個 3 位二進制,換成 0–7。
- 八 → 二:每個八進制數字單獨換成 3 個位元,再接起來。
例:100 111 0102 → 4 7 28。反過來 6738 → 110 111 0112。
方法 E · 二進制 ↔ 十六進制(每 4 位一組)
- 二 → 十六:由右邊開始,每 4 個位元一組;左邊不足補 0。
- 每一組換成 0–9 或 A–F。
- 十六 → 二:每個十六進制數字單獨換成 4 個位元,再接起來。
例:1010 11112 = AF16。2F16 = 0010 11112。
方法 F · 負數用二補數(Two’s complement)
- 先選定位元數。4 位範圍 −8 到 +7;8 位 −128 到 +127。
- 寫出正數的二進制,左邊補 0 到滿位。
- 反轉每一位:0 變 1,1 變 0。
- 再加 1。多出來的進位丢掉。
- 最左位元是 1 代表負數。裝不下就是溢位。
例:−5(4 位)+5 = 0101 → 反轉 1010 → 加 1 → 1011。−9(8 位)+9 = 00001001 → 11110110 → 11110111。
這個數字的逐步計算
先輸入一個合法數字,下面會把重複除法和加法(權重相加)都列出來。