2i進制

維基百科,自由的百科全書
前往: 導覽搜尋

2i進制,是由高德納於1995年提出來的,當時用作高中科學精英研究用。它是一種以2i基數的非標準進位制。這種進制以0、1、2、3為基本數碼[1],能夠獨一無二的表示全體複數

轉換2i進制到十進制[編輯]

k (2i)k
-5 −1/32i
-4 1/16
-3 1/8i
-2 −1/4
-1 −1/2i
0 1
1 2i
2 −4
3 −8i
4 16
5 32i
6 −64
7 −128i
8 256
Powers of 2i

將2i進制轉換為十進制可以用標準公式. 這個公式是


進制數 的十進制數為


2i進制中, .

示例[編輯]

轉換為十進制, 可按照上述公式填入相應數字:

再比如: 十進制是

十進制轉換到2i進制[編輯]

也能將十進制數轉換為2i進制. 每個複數(形如a+bi) 都有個2i進制形式. 大多十進制數都只有1個形式,但像1這樣的數在十進制中有兩種形式1.0 = 0.9... , 相對應的 1/5有兩種2i進制形式:1.(0300)…2i = 0.(0003)…2i.

要轉換十進制數, 先將實部虛部分別轉換為2i進制數,然後加到一起即可。 比如, –1+4i 等於–1 加上 4i, -1的2i進制數是103, 4i的2i進制數是20,因此 –1+4i = 1232i.

轉換虛部時,可以先乘以2i, 得到一個實數;然後將這個實數轉換為2i進制,然後右移一位即可 (等效於除以 2i). 例如, 虛部是 6i,先將6i 乘以2i 得到 –12, 化為2i進制是3002i, 然後右移一位, 得到: 6i = 302i.

轉換實數,可以用方程組來求解。

示例:實數[編輯]

我們來求解7的2i進制數。我們很難知道這個2i進制數有多長,所以我們先假設一個比較長的數. 我們先選六位試試,如果不夠,我們再延長。 我們寫出公式,然後分組:

7是實數, 因此d1, d3d5 是0。 剩下就是係數d0, d2d4。 因為 d0 − 4 d2 + 16 d4 = 7 並且他們只能是 0, 1, 2 or 3 。可能的結果是: d0 = 3, d2 = 3 , d4 = 1. 這樣就找到了710的2i進制數.

示例: 虛數[編輯]

找一個純虛數的2i進制數,可以模擬實數的方法. 例如6i, 也可以用公式。實部全為零,虛部化為6. 6i 很容易看出 d1 = 3 其他各位都是0。6i就是:

小數點「.」[編輯]

十進制中小數點用來區分整數部分和小數部分。2i進制中小數點一樣可以用,比如 中,小數點用來分割b的正數和負數冪。帶小數點時,公式是:

示例[編輯]

將i轉換為2i進制,沒有小數點的話,可能沒辦法做到。因此:

實部為0; d4 = d2 = d0 = d-2 = 0. 虛部, 當 d5 = d3 = d -3 = 0 並且 當 d1=1d-1=2 時結果正確。所以

.

加減法[編輯]

2i進制也可以做加減法. 首先要記住以下規則:

  1. 數字超過3時, 4 "進" −1 到左邊第二位。
  2. 數字小於0時, 4"進" +1 到左邊第二位。

簡單的說: "加四進一、減四借一". 和一般豎式加法不同的是,要借/進到左邊第二位。

示例:加法[編輯]

  1 - 2i                1031             3 - 4i                 1023
  1 - 2i                1031             1 - 8i                 1001
  ------- +     <=>     ----- +          ------- +      <=>     ----- +
  2 - 4i                1022             4 - 12i               12320

第一個例子,先是1+1=2。然後是3+3=6,6比3大,我們得減4借1。接着是0+0=0。然後是1+1=2,在減去借的1。得1。

第二個例子,先是3+1=4; 4 比3大,我們得減4借1。然後是2+0=2。 接着是0+0=0,再減去借位1,得-1,小於0,我們得加四進一。 然後是1+1=2; 最後是進位1。我們得到結果.

示例:減法[編輯]

減法和加法類似。下面是例子:

        - 2 - 8i                       1102
          1 - 6i                       1011  
          ------- -         <=>        ----- -
        - 3 - 2i                       1131

這個例子中,先是2-1 = 1。 然後是0-1=-1,小於0,加4進1得3;接着是1-0=1。然後是1-1=0,加上進位得1。 結果就是 .

乘法[編輯]

乘法也要用到上面兩點。先逐位相乘,然後疊加。比如:

             11201
             20121  x
             --------
             11201      <--- 1 x 11201
            12002       <--- 2 x 11201
           11201        <--- 1 x 11201
          00000         <--- 0 x 11201
         12002      +   <--- 2 x 11201
         ------------
         120231321

也就是 .

查表轉換[編輯]

下面是一個常用的複數對照表。我們可以用疊加的方法來轉換複數

十進制 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 10.2
2i 10.0
3i 20.2
4i 20.0
5i 30.2
6i 30.0
7i 103000.2
8i 103000.0
9i 103010.2
10i 103010.0
11i 103020.2
12i 103020.0
13i 103030.2
14i 103030.0
15i 102000.2
16i 102000.0
十進制 2i進制
−1i 0.2
−2i 1030.0
−3i 1030.2
−4i 1020.0
−5i 1020.2
−6i 1010.0
−7i 1010.2
−8i 1000.0
−9i 1000.2
−10i 2030.0
−11i 2030.2
−12i 2020.0
−13i 2020.2
−14i 2010.0
−15i 2010.2
−16i 2000.0

示例[編輯]

參見[編輯]

參考資料[編輯]

  • D. Knuth. The Art of Computer Programming. Volume 2, 3rd Edition. Addison-Wesley. pp. 205, "Positional Number Systems"
    • ^ Donald Knuth. An imaginary number system. Communications of the ACM. April 1960, 3 (4).