二進位
以二進位形式轉換並執行操作
如何使用二進位
- 1用對應模式輸入二進位制、十進位制或十六進位制數。
- 2選擇要轉換的目標進位制。
- 3檢視轉換後的值以及(相關時)位長度。
進位制間轉換
十進位制 = Σ(第i位數字 × 進位制^i);二進位制用 0–1,基為 2二進位制僅用 0 和 1 表示數,每一位是 2 的冪,這正是計算機儲存資料的方式。
轉十進位制時把每位乘以其位值後求和;從十進位制轉換則不斷除以目標進位制並收集餘數。
十進位制轉二進位制用「**除 2 取餘,倒序排列**」:把 13 連續除以 2,餘數依次是 1、0、1、1,倒過來就是 1101。反過來二進位制轉十進位制用「按權展開」:1101 = 1×8 + 1×4 + 0×2 + 1×1 = 13。**每 4 位二進位制對應 1 位十六進位制**,這是快速轉換的捷徑——1111 1111 直接拆成 F F,即 FF(255)。
二進位制的第 n 位(從 0 開始)代表 2ⁿ,所以 8 位二進位制最大值是 2⁸ − 1 = 255,16 位是 65,535,32 位是 4,294,967,295。這也是為什麼 IPv4 地址每段最大值是 255(每段 8 位),以及為什麼老遊戲裡金幣上限常是 2,147,483,647(32 位有符號整數的最大值,即 2³¹ − 1)。
| 十進位制 | 二進位制 | 八進位制 | 十六進位制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 5 | 101 | 5 | 5 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 127 | 1111111 | 177 | 7F |
| 255 | 11111111 | 377 | FF |
十進位制 ↔ 二進位制 ↔ 八進位制 ↔ 十六進位制對照表
常見問題
為何計算機用二進位制?
電子裝置可靠地表示兩種狀態(開/關),使基 2 成為邏輯閘的自然選擇。
什麼是位與位元組?
位是單個二進位制數字;位元組是 8 位,常用儲存單位。
如何把十進位制轉二進位制?
不斷除以 2,餘數自底向上讀即得二進位制數字。
負數在二進位制裡怎麼表示?
用「補碼」:正數按位取反再加 1。以 8 位為例,5 是 00000101,取反得 11111010,加 1 得 11111011,這就是 −5。補碼的好處是加減法可以統一用加法器實現,0 也只有一種表示。8 位補碼的範圍是 −128 到 +127,這也是 int8 的取值範圍。
為什麼要學二進位制?
計算機底層只有高低電平兩種狀態,天然對應 0 和 1。理解二進位制能幫你搞清楚:為什麼 1 KB 是 1024 而不是 1000(2¹⁰)、為什麼子網掩碼是 255.255.255.0、為什麼顏色 #FF0000 是純紅(每兩位十六進位制對應 R/G/B 通道,FF = 255)。這些概念都建立在二進位制之上。
