三進制

三進制是以3為底數的進位制。

  • 中文名稱
    三進制
  • 底數
    3
  • 類別
    數學概念
  • 特點
    逢3進1

三進位

定義

三進位是以3為底數的進位製。

曾經被莫斯科大學科研人員用于電腦,在光子電腦研究領域也有涉及。

對稱三進位能比二進位更方便的表示所有整數

三進位

是"逢三進一,退一還三"的進位。

三進位數碼包括"0,1和2。"電信號(-1)、0、1。

三進位數位小數點前從右往左依次是1位,3位,9位,27位,81位,243位……

三進位數位小數點後從左往右依次是3分位,9分位,27分位,81分位……

寫時註意應打括弧,加下標的3,如(1201)3。讀作一二零一,不能讀成一千二百零一,這是因為它們對應于27位,9位,3位和1位,不是千百十個位!

一些常見的十進位數換三進位表

十進位
三進位
00
11
22
310
411
512
620
721
822
9100
10101
......

實際套用

三進位在實際生活中較少用到,下面舉一例:

三進位數是以下問題的答案:

允許在天平兩端放置砝碼,問N個砝碼如何才能稱出最多的整克物體?

答案:1.一個砝碼取1克,隻能稱1克。

2.二個砝碼取1克,3克

右盤3,左盤1。稱2克

右盤3。稱3克

右盤1,3。稱4克

3.三個砝碼取1克,3克,9克

右盤9,左盤1,3。稱5克

右盤9,左盤3。稱6克

右盤9,1,左盤3。稱7克

右盤9,左盤1。稱8克

右盤9。稱9克

右盤9,1。稱10克

右盤9,3,左盤1。稱11克

右盤9,3。稱12克

右盤9,3,1。稱13克

4.四個砝碼取1克,3克,9克,27克。

............

其中的1,3,9,27,81等都是三進位數的數位

表示形式

三進位一般有兩種表示形式:

一種是以0,1,2為基本字元的表示形式。例如,365在這種表示形式中的寫法是111112。

一種是以-1,0,1為基本字元的表現形式。例如,365在這種表示形式中的寫法是1FFFFFF(我們用F表示-1)。這種表示法也被稱作對稱三進位或平衡三進位

運算規則

1 .普通三進位的四則運算

加法:0+0=0,0+1=1,0+2=2,1+0=1,1+1=2,1+2=10,2+0=2,2+1=10,2+2=11

減法:0-0=0,1-0=1,2-1=1,1-1=0,2-1=1,10-1=2,2-2=0,10-2=1,11-2=2

乘法:0×0=0,0×1=0,0×2=0,1×0=0,1×1=1,1×2=2,2×0=0,2×1=2,2×2=11

除法:0÷1=0,1÷1=1,2÷1=2,1÷2=0.1111...

2 .對稱三進位的四則運算

加法:F+F=F1,F+0=F,F+1=0,0+F=F,0+0=0,0+1=1,1+F=0,1+0=1,1+1=1F

減法:F-F=0,F-0=F,F-1=F1,0-F=1,0-0=0,0-1=F,1-F=1F,1-0=1,1-1=0

乘法:F×F=1,F×0=0,F×1=F,0×F=0,0×0=0,0×1=0,1×F=F,1×0=0,1×1=1

除法:F÷F=1,F÷1=F,0÷F=0,0÷1=0, 1÷F=F,1÷1=1

3. 對稱三進位的邏輯運算

:F∨F=F,F∨0=0,F∨1=1,0∨F=0,0∨0=0,0∨1=1,1∨F=1,1∨0=1,1∨1=1

與:F∧F=F,F∧0=F,F∧1=F,0∧F=F,0∧0=0,0∧1=0,1∧F=F,1∧0=0,1∧1=1

非:¬F=1,¬0=0,¬1=F

區別

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

1到27

三進位

1

2

10

11

12

20

21

22

100

對稱三進位

1

1F

10

11

1FF

1F0

1F1

10F

100

二進位

1

10

11

100

101

110

111

1000

1001

十進位

1

2

3

4

5

6

7

8

9

三進位

101

102

110

111

112

120

121

122

200

對稱三進位

101

11F

110

111

1FFF

1FF0

1FF1

1F0F

1F00

二進位

1010

1011

1100

1101

1110

1111

10000

10001

10010

十進位

10

11

12

13

14

15

16

17

18

三進位

201

202

210

211

212

220

221

222

1000

對稱三進位

1F01

1F1F

1F10

1F11

10FF

10F0

10F1

100F

1000

二進位

10011

10100

10101

10110

10111

11000

11001

11010

11011

十進位

19

20

21

22

23

24

25

26

27

3的冪

三進位

1

10

100

1 000

10 000

對稱三進位

1

10

100

1 000

10 000

二進位

1

11

1001

1 1011

101 0001

十進位

1

3

9

27

81

3(0)

3(1)

3(2)

3(3)

3(4)

三進位

100 000

1 000 000

10 000 000

100 000 000

1 000 000 000

對稱三進位

100 000

1 000 000

10 000 000

100 000 000

1 000 000 000

二進位

1111 0011

10 1101 1001

1000 1000 1011

1 1001 1010 0001

100 1100 1110 0011

十進位

243

729

2 187

6 561

19 683

3(5)

3(6)

3(7)

3(8)

3(9)

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

小數

三進位

0.111111111111...

0.1

0.020202020202...

0.012101210121...

0.011111111111...

0.010212010212...

對稱三進位

0.111111111111...

0.1

0.1F1F1F1F1F...

0.1FF11FF11FF1...

0.011111111111...

0.0110FF0110FF...

二進位

0.1

0.010101010101...

0.01

0.001100110011...

0.00101010101...

0.001001001001...

十進位

0.5

0.333333333333...

0.25

0.2

0.166666666666...

0.142857142857...

分數

1/2

1/3

1/4

1/5

1/6

1/7

三進位

0.010101010101...

0.01

0.002200220022...

0.002110021100...

0.002020202020...

0.002002002002...

對稱三進位

0.010101010101...

0.01

0.010F010F010F...

0.01F1101F1100...

0.01F1F1F1F0...

0.01F01F01F01F...

二進位

0.001

0.000111000111...

0.000110011001...

0.000101110100...

0.000101010101...

0.000100111011...

十進位

0.125

0.111111111111...

0.1

0.090909090909...

0.083333333333...

0.076923076923...

分數

1/8

1/9

1/10

1/11

1/12

1/13

比較

1.對稱三進位採用-1,0,1作為基本字元,而普通三進位採用0,1,2作為基本字元。

2.對稱三進位不需要符號位就能表示負數,而普通三進位需要符號位才能表示負數。

3.對稱三進位乘法比較簡單,移位、取非、相加就可以完成,便于處理;普通三進位,處理起來比較麻煩。

4.對稱三進位在表示自然數的時候,比普通二進位要長。

5.對稱三進位在表示0.5〈10〉~1〈10〉之間的數的時候,整數部分為1,不直觀;普通三進位沒有這種現象。

轉換方法

整數部分,一般使用長除法,用基數除待轉換數或上一步的商,求得餘數或補數,直至最後的商為零。將各次餘數從後往前排列,即為目標進位下的整數部分。小數部分,一般使用長乘法,用基數乘待轉換數或上一步的積,求得整數部分,將證書部分從前往後排列,即為目標進位下的小數部分正負數需要分別處理。

1 十進位到普通三進位

例如,2356

2356/3=785餘1,785/3=261餘2,261/3=87,87/3=29,29/3=9餘2,9/3=3,3/3=1,1/3=0餘1

以上得知,2356的三進位為10020021

2 十進位到對稱三進位

例如,2356,

2356/3=785餘1;785/3=262少1,262/3=87餘1,87/3=29,29/3=10少1,10/3=3餘1,3/3=1,1/3=0餘1

以上得知,2356的對稱三進位為101F01F1

3 二進位到對稱三進位

3.1 正數

比如0111 1010(十進位122)

01111010/11=101001少1;101001/11=1110少1;1110/11=101少1;101/11=10少1;10/11=1少1;1/11=0餘1

01111010的對稱3進位為1FFFFF

3.2 負數

比如1011 1010(-70)

取原碼-1000110

1000110/11=10111餘1;10111/11=1000少1;1000/11=11少1;11/11=1;1/11=0餘1

得10FF1,逐位取非,得對稱三進位為F011F

套用歷史

現今的電腦都使用"二進位"數位系統,盡管它的計算規則非常簡單,但其實"二進位"邏輯並不能完美地表達人類的真實想法。相比之下,"三進位"邏輯更接近人類大腦的思維方式。因為在一般情況下,我們對問題的看法不是隻有"真"和"假"兩種答案,還有一種"不知道"。在三進位邏輯學中,符號"1"代表"真";符號"-1"代表"假";符號"0"代表"不知道"。顯然,這種邏輯表達方式更符合電腦在人工智慧方面的發展趨勢。它為電腦的模糊運算和自主學習提供了可能。隻可惜,電子工程師對這種非二進位的研究大都停留在表面或形式上,沒有真正深入到實際套用中去。

不過,凡事都有一個例外,三進位電腦並非沒有在人類電腦發展史上出現過。其實,早在上世紀50、60年代。一批莫斯科國立大學的研究員就設計了人類歷史上第一批三進位電腦"Сетунь"和"Сетунь 70"("Сетунь"是莫大附近一條流入莫斯科河的小河的名字)。

"Сетунь"小型數位電腦的設計計畫由科學院院士С·Л·Соболев在1956年發起。這個計畫的目的是為大專院校、科研院所、設計單位和生產車間提供一種價廉物美的電腦。為此,他在莫大電腦中心成立了一個研究小組。該小組最初由9位年輕人(4名副博士、5名學士)組成,都是工程師和程式員。С·Л·Соболев、К·А·Семендяев、М·Р·Шура-Бура和И·С·Березин是這個小組的永久成員。他們經常在一起討論電腦架構的最最佳化問題以及如何依靠現有的技術去實現它。他們甚至還構想了一些未來電腦的發展思路。

隨著技術的進步,真空管和電晶體等傳統的電腦元器件逐漸被淘汰,取而代之的是速度更快、可靠性更好的鐵氧體磁芯和半導體二極體。這些電子元器件組成了一個很好的可控電流變壓器,這為三進位邏輯電路的實現提供了可能,因為電壓存在著三種狀態:正電壓("1")、零電壓("0")和負電壓("-1")。三進位邏輯電路非但比二進位邏輯電路速度更快、可靠性更高,而且需要的設備和電能也更少。這些原因促成了三進位電腦"Сетунь"的誕生。

"Сетунь"是一台帶有快速乘法器的時序電腦。小型的鐵氧體隨機存儲器(容量為3頁,即54字)充當快取,在主磁鼓存儲器中交換頁面。這台電腦支持24條指令,其中3條為預留指令,不用。

三進位代碼的一個特點是對稱,即相反數的一致性,因此它就和二進位代碼不同,不存在"無符號數"的概念。這樣,三進位電腦的架構也要簡單、穩定、經濟得多。其指令系統也更便于閱讀,而且非常高效。

在這群天才青年日以繼夜的開發和研製下,"Сетунь"的樣機于1958年12月準備完畢。在頭兩年測試期,"Сетунь"幾乎不需要任何調試就運行得非常順利,它甚至能執行一些現有的程式。1960年,"Сетунь"開始公共測試。

1960年4月,"Сетунь"就順利地通過了公測。它在不同的室溫下都表現出驚人的可靠性和穩定性。它的生產和維護也比同期其它電腦要容易得多,而且套用面廣,因此"Сетунь"被建議立即投入批量生產。

不幸的是,蘇聯官僚對這個不屬于經濟計畫一部分的"科幻產物"持否定的態度。他們甚至勒令其停產。而此時,對"Сетунь"的訂單卻如雪片般從各方飛來,包括來自國外的訂單,但10到15台的年產量遠不足以應付市場需求,更不用說出口了。很快,計畫合作生產"Сетунь"的捷克斯洛伐克工廠倒閉了。1965年,"Сетунь"停產了。取而代之的是一種二進位電腦,但價格卻貴出2.5倍。

"Сетунь"總共生產了50台(包括樣機)。30台被安裝在高等院校,其餘的則在科研院所和生產車間落戶。從加裏寧格勒到雅庫茨克,從阿什哈巴德新西伯利亞,全蘇都能看到"Сетунь"的身影。各地都對"Сетунь"的反應不錯,認為它編程簡單(不需要使用匯編語言),支持反向波蘭表示法,適用于工程計算、工業控製、電腦教學等各個領域。

有了"Сетунь"的成功經驗,研究員們決定不放棄三進位電腦的計畫。他們在1970年推出了"Сетунь 70"型電腦。"Сетунь 70"對三進位的特徵和概念有了進一步的完善和理解:建立了三進位位元組--"tryte"(對應于二進位的"byte"),每個三進位位元組由6個三進位位("trit",約等于9.5個二進位位"bit")構成;指令集符合三進位邏輯;算術指令允許更多的運算元長--1、2和3位元組(三進位),結果長度也擴展到6位元組(三進位)。

對"Сетунь 70"而言,傳統電腦的"字"的概念已經不存在了。編程的過程就是對三進位運算和三進位地址的操作。這些基于三進位位元組的命令將會通過對虛擬指令的編譯而得到。當然,程式員們不必考慮這些--他們隻需直接和運算元及參數打交道即可。

"Сетунь 70"是一台雙堆疊電腦。其回叫堆疊用來調用子程式。這一簡單的改進啓發了荷蘭電腦科學家艾茲格·W·迪科斯徹,為他日後提出"結構化程式設計"思想打下了基礎。

"Сетунь 70"成了莫斯科國立大學三進位電腦的絕唱。由于得不到上級的支持,這個科研項目不得不無限期停頓下來。

相關搜尋

其它詞條