三進制
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
數制 |
記數系統 |
---|
數制列表 |
三進制是以3為底數的進制。和二進制一樣,三進制的數碼,稱為三進制位(trit),每個三進制位包含(約1.58個)位元的資訊量。通常,三進制中使用0、1、2三個數字。但在平衡三進制中,則使用-1(記作T)、0、1來表達。
表示形式
例如,365(10)在常見的三進制表示法中的寫法是111112(3)。
運算規則
三進制的四則運算
加 | 減 | 乘 | 除 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
與其他進制的比較
整數的三進制表示法不如二進制那樣冗長,但仍然比六進制或十進制要長。例如,十進制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電腦起初是驗證在二進制電腦上實施非二進制結構的可行性,並確認在儲存容量和時間上花費。作為一個可行性測試,這個嘗試是成功的。第一個版本的實現證明,其速度和價格和二進制電腦相似。
參看
參考
|