# 2017q3 Homework1 (Ternary)
contributed by < `yayachen` >
## Balanced Ternary 數值系統
相較於 Ternary 是以 `0`、`1`、`2` 表示 ,Balanced Ternary 是以 `-1`、`0`、`1` 來表示( 以下 `-1` 用 `T` 來代表 )。我們接著觀察下表可以發現在 Balanced Ternary 中要表示負數只用把 `1` 與 `T` 交換就好,相較於 Ternary 更節省空間。
| Dec | Balanced Ternary |
|----------|------------------ |
|-5 |T11 |
|-4 |0TT |
|-3 |0T0 |
|-2 |0T1 |
|-1 |00T |
|0 |000 |
|1 |001 |
|2 |01T |
|3 |010 |
|4 |011 |
|5 |1TT |
* 負數的表示也可由下式證明 :
>$\ \ \ 2_{dec}\ = \ 1_{bal3}+1_{bal3}\ =\ 1T_{bal3}$
>$-2_{dec}\ = \ T_{bal3}+T_{bal3}\ =\ T1_{bal3}$
### 四則運算
* #### Addition
| $+$ | T | 0 |1 |
| - | - | - |- |
| **T** |T1 | T |0 |
| **0** | T | 0 |1 |
| **1** | 0 | 1 |1T|
* #### Subtraction
| $+$ | T | 0 |1 |
| - | - | - |- |
| **T** | 0 | T |T1 |
| **0** | 1 | 0 |T |
| **1** | 1T | 1 |0|
* #### Multiplication
| $+$ | T | 0 |1 |
| - | - | - |- |
| **T** |1 | 0 |T |
| **0** | 0 | 0 |0 |
| **1** | T | 0 |1|
* #### Division
| $+$ | T | 0 |1 |
| - | - | - |- |
| **T** |1 | NaN |T |
| **0** | 0 | NaN |0 |
| **1** | T | NaN |1|
### 邏輯運算
* #### NOT
| INPUT | NOT |
| -------| ----|
| T | 1 |
| 0 | 0 |
| 1 | T |
* #### AND
| | T | 0 | 1 |
| -----| --| --| --|
| **T**| T | T | T |
| **0**| T | 0 | 0 |
| **1**| T | 0 | 1 |
> 比較 Binary 的 `AND` 只要有一個 `0` 就為 `0`
> Balanced Ternary 則是有一個 `T` 就為 `T`
> 如果沒有 `T` ,有一個 `0` 就為 `0` (與 Binary 一樣)。
* #### OR
| | T | 0 | 1 |
| -----| --| --| --|
| **T**| T | 0 | 1 |
| **0**| 0 | 0 | 1 |
| **1**| 1 | 1 | 1 |
> 必較 Binary 的 `OR` 只要有一個 `1` 就為 `1`
> Balanced Ternary 也一樣只要有一個 `1` 就為 `1`
> 如果沒有 `1` ,有一個 `0` 就為 `0`
## github案例
## 已開發案例修改
## 參考資料
1. [wikipedia -- balanced ternary](https://en.wikipedia.org/wiki/Balanced_ternary)
2. [c2 wiki](http://wiki.c2.com/?ThreeValuedLogic)