2i 進位制，是由高德納於 1995 年提出來的，當時用作高中科學精英研究用。它是一種以 2i 為基數的非標準進位制。這種進位制以 0、1、2、3 為基本數碼，能夠獨一無二的表示全體複數。 轉換 2i 進位制到十進位制 的冪 k 2i k 5 132i 4 116 3 18i 2 14 1 12i 0 1 1 2i 2 4 3 8i 4 16 5 32i 6 64 7 128i 8 256 將 2i 進位制轉換為十進位制可以用標準公式。這個公式是： b 進位制數 ldots d_3d_2d_1d_0 的十進位制數為 cdots d_3cdot b3d_2cdot b2d_1cdot bd_0 2i 進制中，b 2i。 示例 將 1101_2i 轉換為十進位制，可按照上述公式填入相應數字： 1cdot 2i3 1cdot 2i2 0cdot 2i1 1cdot 2i0 8i 4 0 1 3 8i 再比如： 1030003_2i 十進位制是 1cdot 2i6 3cdot 2i4 3cdot 2i0 64 3cdot 16 3 13 十進位制轉換到 2i 進位制 也能將十進位制數轉換為 2i 進位制。 每個複數（形如 abi） 都有個 2i 進位制形式。 大多十進位制數都只有 1 個形式，但像 1 這樣的數在十進位制中有兩種形式 1 0， 相對應的 15 有兩種 2i 進位制形式：12i 02i。 要轉換十進位制數，先將實部和虛部分別轉換為 2i 進位制數，然後加到一起即可。 比如， 等於 加上 ，的 2i 進位制數是 103， 的 2i 進位制數是 20，因此 。 轉換虛部時，可以先乘以，得到一個實數；然後將這個實數轉換為 2i 進位制，然後右移一位即可（等效於除以 ）。 例如，虛部是 ，先將 乘以 得到 ，化為 2i 進位制是，然後右移一位，得到： 。 轉換實數，可以用方程組來求解。 示例：實數 我們來求解 7 的 2i 進位制數。我們很難知道這個 2i 進位制數有多長，所以我們先假設一個比較長的數。 我們先選六位試試，如果不夠，我們再延長。 我們寫出公式，然後分組： begin align 7_10 d_0d_1cdot bd_2cdot b2d_3cdot b3d_4cdot b4d_5cdot b5 d_02id_14d_28id_316d_432id_5 d_04d_216d_4i 2d_18d_332d_5 end align 7 是實數，因此 d1、d3 和 d5 是 0。 剩下就是係數 d0、d2 和 d4。 因為 d0 4 d2 16 d4 7 並且他們只能是 0、 1、 2 或 3 。可能的結果是： d0 3 d2 3 ， d4 1。 這樣就找到了 710 的 2i 進位制數。 begin align 7_10 010303_2i 10303_2iend align 示例：虛數 找一個純虛數的 2i 進位制數，可以模擬實數的方法。 例如 6i 也可以用公式。實部全為零，虛部化為 6。 6i 很容易看出 d1 3 其他各位都是 0。6i 就是： begin align 6i_10 30_2iend align 其他的轉換方式 對實數而言，2i 進製表示法實際上與負四進位制相同。要將複數轉換成 2i 進位制可以透過將和分別轉換為負四進位制再將之交錯合併來完成轉換成 2i 進位制的工作。如果和都是有限的二進位制小數，則可以使用連續的帶餘除法來將十進位制數轉換成 2i 進位制： 例如：3523i 35 23i2i115 111205 3548 餘 3 1243 餘 0 0542 84 2 餘 0 34 1 餘 1 24 0 餘 2 14 0 餘 1 20003 101000 02 1210032 32i1628i402i0132i23523i 小數點 十進位制中小數點用來區分整數部分和小數部分。2i 進制中小數點一樣可以用，比如d_5 d_4 d_3 d_2 d_1 d_0 d_1 d_2 d_3 中，小數點用來分割 b 的正數冪和負數冪。帶小數點時，公式是： d_5 b5 d_4 b4 d_3 b3 d_2 b2 d_1 b d_0 d_1 b1 d_2 b2 d_3 b3 或 32id_516d_48id_34d_22id_1d_0frac 12i d_1frac 14 d_2frac 18i d_3 32id_516d_48id_34d_22id_1d_0frac i2 d_1frac 14 d_2frac i8 d_3 示例 將 i 轉換為 2i 進位制，沒有小數點的話，可能沒辦法做到。因此： begin align i 32id_516d_48id_34d_22id_1d_0frac 12i d_1frac 14 d_2frac 18i d_3 i 32d_58d_32d_1frac 12 d_1frac 18 d_316d_44d_2d_0frac 14 d_2 end align 因為實部為 0，故 d4 d2 d0 d2 0。 接著考慮虛部部分，當 d5 d3 d 3 0 並且 當 d11 ， d12 時結果正確。所以 begin align i 102_2iend align 示例（分數） 將 frac 13 轉換為 2i 進位制，其結果為 0。 加減法 2i 進位制也可以做加減法。 首先要記住以下規則： 數字超過 3 時，減 4 進 1 到左邊第二位。 數字小於 0 時，加 4進 1 到左邊第二位。 簡單的說： 「加四進一、減四借一」（當作四進位制來計算）。 和一般豎式加法不同的是，要借 進到左邊第二位。 示例：加法 1 2i 1031 3 4i 1023 1 2i 1031 1 8i 1001 2 4i 1022 4 12i 12320 第一個例子，先是 112。然後是 336，6 比 3 大，我們得減 4 借 1。接著是 000。然後是 112，在減去借的 1。得 1。 第二個例子，先是 314 4 比 3 大，我們得減 4 借 1。然後是 202。 接著是 000，再減去借位 1，得 1，小於 0，我們得加四進一。 然後是 112 最後是進位 1。我們得到結果 12320_2i。 示例：減法 減法和加法類似。下面是例子： 2 8i 1102 1 6i 1011 3 2i 1131 這個例子中，先是 21 1。 然後是 011，小於 0，加 4 進 1 得 3；接著是 101。然後是 110，加上進位得 1。 結果就是 1131_2i。 乘法 乘法也要用到上面兩點。先逐位相乘，然後疊加。比如： 11201 20121 x 11201 1 x 11201 12002 2 x 11201 11201 1 x 11201 00000 0 x 11201 12002 2 x 11201 120231321 也就是 98icdot 294i 293196i。 查 表 轉換 下面是一個常用的複數對照表。我們可以用疊加的方法來轉換複數 十進位制 2i 進位制 1 1 2 2 3 3 4 10300 5 10301 6 10302 7 10303 8 10200 9 10201 10 10202 11 10203 12 10100 13 10101 14 10102 15 10103 16 10000 十進位制 2i 進位制 1 103 2 102 3 101 4 100 5 203 6 202 7 201 8 200 9 303 10 302 11 301 12 300 13 1030003 14 1030002 15 1030001 16 1030000 十進位制 2i 進位制 1i 102 2i 100 3i 202 4i 200 5i 302 6i 300 7i 1030002 8i 1030000 9i 1030102 10i 1030100 11i 1030202 12i 1030200 13i 1030302 14i 1030300 15i 1020002 16i 1020000 十進位制 2i 進位制 1i 02 2i 10300 3i 10302 4i 10200 5i 10202 6i 10100 7i 10102 8i 10000 9i 10002 10i 20300 11i 20302 12i 20200 13i 20202 14i 20100 15i 20102 16i 20000 示例 5 16 3cdot4 1 10301_2i i 2i 2left frac 12 iright 102_2i 7 frac 34 7 frac 12 i 1 16 1 8i 2 4 1 2i 3left frac 12 iright 1left frac 14right 1121031_2i 參見 四進位制 十六進位制 參考資料 D Knuth The Art of Computer Programming Volume 2 3rd Edition AddisonWesley pp 205 Positional Number Systems Category 進位制 Category 高德納 Category 非標準進位制系統