跳至內容

三進位

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

三進制是以3底數進制。和二進制一樣,三進制的數位,稱為三進制位(trit),每個三進制位包含(約1.58個)位元的資訊量。通常,三進制中使用0、1、2三個數字。但在平衡三進制中,則使用-1(記作T)、0、1來表達。

表示形式

例如,365(10)在常見的三進制表示法中的寫法是111112(3)

運算規則

三進制的四則運算

+ 0 1 2
0 0 1 2
1 1 2 10
2 2 10 11
- 0 1 2
0 0 1 2
1 -1 0 2
2 -2 -1 0
× 0 1 2
0 0 0 0
1 0 1 2
2 0 2 11
÷ 0 1 2
0 NaN NaN NaN
1 0 1 2
2 0 0.1 1

與其他進制的比較

整數的三進制表示法不如二進制那樣冗長,但仍然比六進制十進制要長。例如,十進制365(六進制1405)在二進制中的寫法是101101101(9個數字),在三進制中的寫法是111112(6個數字)。

1到33
三進制 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 201 202 210 211 212 220 221 222 1000
二進制 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011
六進制 1 2 3 4 5 10 11 12 13 14 15 20 21 22 23 24 25 30 31 32 33 34 35 40 41 42 43
十進制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
3的冪
三進制 1 10 100 1 000 10 000 100 000 1 000 000 10 000 000 100 000 000 1 000 000 000
二進制 1 11 1001 1 1011 101 0001 1111 0011 10 1101 1001 1000 1000 1011 1 1001 1010 0001 100 1100 1110 0011
六進制 1 3 13 43 213 1043 3213 14043 50213 231043
十進制 1 3 9 27 81 243 729 2187 6561 19683
30 31 32 33 34 35 36 37 38 39

在三進制中表示三分之一是很方便的,不像在十進制中,需要用無限小數來表示。但是,二分之一、四分之一之類的分數在三進制中都是無窮小數,這是因為2不是3的因子

小數
三進制 0.1 0.1 0.02 0.0121 0.01 0.010212 0.01 0.01 0.0022 0.00211 0.002 0.002
二進制 0.1 0.01 0.01 0.0011 0.001 0.001 0.001 0.000111 0.00011 0.0001011101 0.0001 0.000100111011
六進制 0.3 0.2 0.13 0.1 0.1 0.05 0.043 0.04 0.03 0.0.0313452421 0.03 0.024340531215
十進制 0.5 0.3 0.25 0.2 0.16 0.142857 0.125 0.1 0.1 0.09 0.083 0.076923
六進分數 1/2 1/3 1/4 1/5 1/10 1/11 1/12 1/13 1/14 1/15 1/20 1/21
十進分數 1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9 1/10 1/11 1/12 1/13
三進制 0.1 0.2 0.20 0.2101 0.21 0.212010 0.21 0.22 0.2200 0.22011 0.220 0.220
二進制 0.1 0.10 0.11 0.1100 0.110 0.110 0.111 0.111000 0.11100 0.1110100010 0.1110 0.111011000100
六進制 0.3 0.4 0.43 0.4 0.5 0.50 0.513 0.52 0.52 0.5242103134 0.53 0.531215024340
十進制 0.5 0.6 0.75 0.8 0.83 0.857142 0.875 0.8 0.9 0.90 0.916 0.923076
六進分數 1/2 2/3 3/4 4/5 5/10 10/11 11/12 12/13 13/14 14/15 15/20 20/21
十進分數 1/2 2/3 3/4 4/5 5/6 6/7 7/8 8/9 9/10 10/11 11/12 12/13



其他進制到三進制的轉換

整數部分一般使用連除法。用3除待轉換數或上一步的商,求得餘數,直至最後的商為零。將各次餘數從後往前排列,即為目標進制下的整數部分。

小數部分一般使用連乘法。用3乘待轉換數或上一步的積,求得整數部分,將整數部分從前往後排列,即為目標進制下的小數部分。

正負數需要分別處理。

十進制到普通三進制

例如,2356

    2356÷3=785余1 ↑
     785÷3=261余2 |
     261÷3=87 余0 |
      87÷3=29 余0 |
      29÷3=9  余2 |
       9÷3=3  余0 |
       3÷3=1  余0 |
       1÷3=0  余1 |
     2356的三进制为10020021

例如,1.4

             1.4        向下圆整为1|,余0.4♦
       0.4×3=1.2        向下圆整为1|,余0.2
       0.2×3=0.6        向下圆整为0|,余0.6
       0.6×3=1.8        向下圆整为1|,余0.8
       0.8×3=2.4        向下圆整为2↓,余0.4 进入循环
       1.4的三进制为1.1012

例如,1/5

               1/5        向下圆整为0|,余1/5♦
       1/5×3=  3/5        向下圆整为0|,余3/5
       3/5×3=1 4/5        向下圆整为1|,余4/5
       4/5×3=2 2/5        向下圆整为2|,余2/5
       2/5×3=1 1/5        向下圆整为1↓,余1/5,进入循环
       1/5的三进制为0.0121

也可以用基本公式來計算。

             25.410=2*1011+12*1010+11*101-1
                  =2*101+12+11/101
                  =202+12+0.1012
                  =221.1012

三進制電腦

Сетунь

早在上世紀50、60年代,一批莫斯科國立大學的研究員就設計了人類歷史上第一批三進制電腦「Сетунь」和「Сетунь 70」(「Сетунь」是莫大附近一條流入莫斯科河的小河的名字)。

Сетунь」是一台帶有快速乘法器的時序電腦。小型的鐵氧體隨機存取記憶體(容量為3頁,即54字)充當快取,在主磁鼓記憶體中交換頁面。這台電腦支援24條指令,其中3條為預留指令,目前不用。「Сетунь」總共生產了50台(包括樣機)。從加里寧格勒到雅庫茨克,從阿什哈巴德到新西伯利亞,全蘇都能看到「Сетунь」的身影。各地都對「Сетунь」的反應不錯,認為它編程簡單(不需要使用組合語言),適用於工程計算、工業控制、電腦教學等各個領域。

Сетунь 70」是一台雙堆疊電腦。其回叫堆疊用來呼叫子程式。這一簡單的改進啟發了荷蘭電腦科學家艾茲格·W·迪科斯徹,為他日後提出「結構化程式設計」思想打下了基礎。「Сетунь 70」成了莫斯科國立大學三進制電腦的絕唱。由於得不到上級的支援,這個科研專案不得不無限期停頓下來。

TERNAC

TERNAC 是一部三進制電腦,由紐約州立大學在1973年實現。TERNAC提供整數和浮點數,整數的長度是24個三進制位。浮點數採用科學計數法表示,尾數部分長42個三進制位,指數部分長6個三進制位。 Ternac電腦起初是驗證在二進制電腦上實施非二進制結構的可行性,並確認在儲存容量和時間上花費。作為一個可行性測試,這個嘗試是成功的。第一個版本的實現證明,其速度和價格和二進制電腦相似。

參看

參考