contributed by < BreezeDa
>
Wed, Oct 2, 2017 1:52 PM 1st version
在講到 Balanced Ternary 之前我們先簡介一下 ternary,ternary 是以 3 為基數的進位方式,中文稱為三進制
,我們知道 binary 使用 0,1 表示一個數字,而在 ternary 中我們則使用 0,1,2 來表示一個數字。下方是個 10 進位轉三進位的說明。
Balanced Ternary 與 ternary 不同,數值表示不使用 0, 1, 2 , 而是 -1, 0, 1 ( 亦可標示為 T, 0, 1 或 -, 0, + )。而且由於 -1 的引入,這種進位不需要額外的符號就能直接表示負數。下方我們 基數符號使用 b3 表示 balanced ternary
decimal | balanced ternary |
---|---|
-7 | T1T , -+- |
-5 | T11 , -++ |
-2 | T1 , -+ |
2 | 1T , +- |
5 | 1TT , +-- |
7 | 1T1 , +-+ |
解析
decimal | balanced ternary |
---|---|
-0.5 | |
-0.4 | |
-0.1 | |
0.1 | |
0.4 | |
0.5 |
解析
一開始看到
由以上整數與小數的表示中可以看出正數與負數之間的轉換,其實只要將 1 轉成 T ,T 轉成 1 就可
latex 表格參考 as23041248 並增加減法,並分別給予一個計算範例
e.g.
我將 T 寫下一位上方
左欄減頂列
e.g.
我將T寫在第二位的上方 => 第二位(由右往左數)
e.g.
由 Ripple Adder in Binary and Ternary Logic 可以看出在 ripple adder 中同樣的運算,ternary logic 比標準 binary 來得快
「所以應該」?這是理工人說的話嗎?