三進位
三進制是以3為底數的進制。和二進制一樣,三進制的數位,稱為三進制位(trit),每個三進制位包含(約1.58個)二進制位的信息量。通常,三進制中使用0、1、2三個數字。但在平衡三進制中,則使用-1(記作T)、0、1來表達。
表示形式
編輯運算規則
編輯三進制的四則運算
編輯加 | 減 | 乘 | 除 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
與其他進制的比較
編輯整數的三進制表示法不如二進制那樣冗長,但仍然比六進制或十進制要長。例如,十進制365(六進制1405)在二進制中的寫法是101101101(9個數字),在三進制中的寫法是111112(6個數字)。
三進制 | 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 |
三進制 | 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的因子。
小數 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
其他進制到三進制的轉換
編輯整數部分一般使用連除法。用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計算機起初是驗證在二進制計算機上實施非二進制結構的可行性,並確認在存儲容量和時間上花費。作為一個可行性測試,這個嘗試是成功的。第一個版本的實現證明,其速度和價格和二進制計算機相似。
參看
編輯參考
編輯