Try   HackMD

2017q3 Homework1(Ternary)

contributed by < kevin55216 >

Review by maskashura

  • 對bal3有明確的解說運算,但內容沒有針對 ternary adder 做分析
  • 需補充 ternary 在 IOTA 上的應用,這部份會是本次作業的重點!

Review by jackyhobingo

  • 在英文與中文中間應該有空格做區分
  • Balanced Ternary 的優缺點敘述有點簡略,不應該只是比較少位元表示就比較有優勢,可以參考 Radix_economy
  • 提出為什麼 tenary 電腦沒有普及的問題,但回答感覺並沒有到點,就好像任何只要需要重新實作的系統都不適合發展,

Balanced Ternary 原理

Balanced Ternary 不同於二進位以

01 表達的方式,Balanced Ternary 使用
1(T)01
(,0,+)
三個基本數位來表示。Balanced Ternary 轉換為十進位的公式如下:

i=1n(ai)3(i1)for ai=1 or 0 or 1

下面以正負整數做比較。

十進位
14
14
二進位
1110
10010
Balanced Ternary
+
+++

二進位在

(14)的表現上必須在前面補上1且需要做
14
的補數
(0001)1
;而Balanced Ternary只需要對正數做補數。
並且以二進位來說
10010
若不告訴閱讀者這是負數則有可能為
18
或者
14
這兩種數,但Balanced Ternary則不然
T111
只有
14
這一數。我們可以認為Balanced Ternary這一進位法是專為正負數系統所設計進位法。

另外在加法部分以下表作呈現。而在減法我們可以僅在前端做一個補數即

xy=x+(y)

S
0
+
C
0
+
+
0
0
0
0
0
+
0
0
0
0
+
0
+
+
0
0
+
乘法部分
×
0
+
+
0
0
0
0
0
+
0
+
例如:
7×(11)=1T1×TT1=77
$\ \ \ \ \ 1T1\
\times \ \underline{TT1}\
\ \ \ \ \ \ 1T1\
\ \ \ T1T\
\underline{T1T\ \ \ \ \ }\
T0011=-77$

在除法部分

A÷B
我們必須先求出
C=0.5B
,且
0.5
在Balanced Ternary中是以
0.1 or 1.T
表示。
C<A<C
則商為
0
,若
A>C,A<C
則商分別為
1,T

我以wikipedia中的範例來解說。
111T÷11

0.5×11=1T

 11>1T=>set 1 T1<01<1T=>set 0 1T=1T=>set 0.1 or 1.T 100.1 or 101.T

再來我提自己的例子
6÷8

A=1T0,B=10T,C=11

           01.T1

10T)1T0      

        10T

        0T1.0

          T0.1

          01.T0

            1.0T

            0.T1

 11>1T>TT=>set 0,1T 11<1T0=>set 1,T1 TT>T10=>set T,1T 11<1T0=>set 1 1.T1

Balanced Ternary 的優缺點

在數值系統

在數值統中,高位元表示毋庸置疑能以較少位元數表示同一數,例如: 同樣是15,在16進位下,
只要0xE,3進位(0,1,2)需要120,2進位則需要1111。
但在平衡三進位中,特別強大的是其在負數上的表現,不需要多一位元來表示正負號,且在正負轉換
只需要進行補數。

實際上

上片敘述了種種ternary的強大之處,但為什麼ternary電腦沒有普及呢?

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

我們可以參考electronics上的一張ternary的電路圖。
若現今的電腦系統要改成三進位電路就要重新設計,電路上的議題也會增加,許多的指令架構都要
從新做設計。

參考資料

wikipedia
techopedia
electronics