Ternary numeral system
|Hindu–Arabic numeral system|
|Positional systems by base|
|Non-standard positional numeral systems|
|List of numeral systems|
The ternary numeral system (also called base-3) has three as its base. Analogous to a bit, a ternary digit is a trit (trinary digit). One trit is equivalent to log23 (about 1.58496) bits of information.
Although ternary most often refers to a system in which the three digits are all non-negative numbers, specifically 0, 1, and 2, the adjective also lends its name to the balanced ternary system, comprising the digits −1, 0 and +1, used in comparison logic and ternary computers.
Comparison to other radices
Representations of integer numbers in ternary do not get uncomfortably lengthy as quickly as in binary. For example, decimal 365 corresponds to binary 101101101 (nine digits) and to ternary 111112 (six digits). However, they are still far less compact than the corresponding representations in bases such as decimal – see below for a compact way to codify ternary using nonary and septemvigesimal.
|Ternary||1||10||100||1 000||10 000|
|Binary||1||11||1001||1 1011||101 0001|
|Ternary||100 000||1 000 000||10 000 000||100 000 000||1 000 000 000|
|Binary||1111 0011||10 1101 1001||1000 1000 1011||1 1001 1010 0001||100 1100 1110 0011|
|Decimal||243||729||2 187||6 561||19 683|
As for rational numbers, ternary offers a convenient way to represent 1/3 (as opposed to its cumbersome representation as an infinite string of recurring digits in decimal); but a major drawback is that, in turn, ternary does not offer a finite representation for 1/2 (neither for 1/4, 1/8, etc.), because 2 is not a prime factor of the base; as with base-2, 1/10 is not representable exactly (that would need e.g. base-10); nor is 1/6.
Sum of the digits in ternary as opposed to binary
The value of a binary number with n bits that are all 1 is 2n − 1.
Similarly, for a number N(b, d) with base b and d digits, all of which are the maximal digit value b − 1, we can write:
- N(b, d) = (b − 1) bd−1 + (b − 1) bd−2 + … + (b − 1) b1 + (b − 1) b0,
- N(b, d) = (b − 1) (bd−1 + bd−2 + … + b1 + 1),
- N(b, d) = (b − 1) M.
- bM = bd + bd−1 + … + b2 + b1, and
- −M = −bd−1 − bd−2 − … − b1 − 1, so
- bM − M = bd − 1, or
- M = (bd − 1)/(b − 1).
- N(b, d) = (b − 1)M,
- N(b, d) = (b − 1) (bd − 1)/(b − 1), and
- N(b, d) = bd − 1.
For a three-digit ternary number, N(3, 3) = 33 − 1 = 26 = 2 × 32 + 2 × 31 + 2 × 30 = 18 + 6 + 2.
Compact ternary representation: base-9 and -27
Nonary (base-9, each digit is two ternary digits) or septemvigesimal (base-27, each digit is three ternary digits) can be used for compact representation of ternary, similar to how octal and hexadecimal systems are used in place of binary.
In certain analog logic, the state of the circuit is often expressed ternary. This is most commonly seen in CMOS circuits, and also in Transistor–transistor logic logic with totem-pole output. The output is said to either be low (grounded), high, or open (high-Z). In this configuration the output of the circuit is actually not connected to any voltage reference at all. Where the signal is usually grounded to a certain reference, or at a certain voltage level, the state is said to be high impedance because it is open and serves its own reference. Thus, the actual voltage level is sometimes unpredictable.
A rare "ternary point" is used to denote fractional parts of an inning in baseball. Since each inning consists of three outs, each out is considered one third of an inning and is denoted as .1. For example, if a player pitched all of the 4th, 5th and 6th innings, plus 2 outs of the 7th inning, his Innings pitched column for that game would be listed as 3.2, meaning 3⅔. In this usage, only the fractional part of the number is written in ternary form.
Ternary numbers can be used to convey self-similar structures like the Sierpinski triangle or the Cantor set conveniently. Additionally, it turns out that the ternary representation is useful for defining the Cantor set and related point sets, because of the way the Cantor set is constructed. The Cantor set consists of the points from 0 to 1 that have a ternary expression that does not contain any instance of the digit 1. Any terminating expansion in the ternary system is equivalent to the expression that is identical up to the term preceding the last non-zero term followed by the term one less than the last nonzero term of the first expression, followed by an infinite tail of twos. For example: .1020 is equivalent to .1012222... because the expansions are the same until the "two" of the first expression, the two was decremented in the second expansion, and trailing zeros were replaced with trailing twos in the second expression.
Ternary is the integer base with the lowest radix economy, followed closely by binary and quaternary. It has been used for some computing systems because of this efficiency. It is also used to represent three-option trees, such as phone menu systems, which allow a simple path to any branch.
A form of redundant binary representation called balanced ternary or signed-digit representation is sometimes used in low-level software and hardware to accomplish fast addition of integers because it can eliminate carries.
Simulation of ternary computers using binary computers, or interfacing between ternary and binary computers, can involve use of binary-coded ternary (BCT) numbers, with two bits used to encode each trit. BCT encoding is analogous to binary-coded decimal encoding. If the trit values 0, 1 and 2 are encoded 00, 01 and 10, conversion in either direction between binary-coded ternary and binary can be done in logarithmic time. A library of C code supporting BCT arithmetic is available.
- Mohsen Soltanifar, On A sequence of cantor Fractals, Rose Hulman Undergraduate Mathematics Journal, Vol 7, No 1, paper 9, 2006.
- Mohsen Soltanifar, A Different Description of A Family of Middle-α Cantor Sets, American Journal of Undergraduate Research, vol. 5, no. 2, pp 9–12, 2006.
- Phatak, D. S.; Koren, I. (1994). "Hybrid signed-digit number systems: a unified framework for redundant number representations with bounded carry propagation chains". IEEE Transactions on Computers. 43 (8): 880–891. doi:10.1109/12.295850.
- Frieder, Gideon; Luk, Clement (February 1975). "Algorithms for Binary Coded Balanced and Ordinary Ternary Operations". IEEE Transactions on Computers. C–24 (2): 212–215. doi:10.1109/T-C.1975.224188.
- Behrooz Parhami and Michael McKeown, Arithmetic with Binary-Encoded Balanced Ternary Numbers, Proc. 2013 Asilomar Conference on Signals, Systems and Computers, Nov. 3–6, 2013, Pacific Grove, CA, 1130–1133
- Douglas W. Jones, Binary Coded Ternary and its Inverse, June 2016.
- Douglas W. Jones, Ternary Data Types for C Programmers, December 29, 2015.
- Impagliazzo, John; Proydakov, Eduard (2011-09-06). Perspectives on Soviet and Russian Computing: First IFIP WG 9.7 Conference, SoRuCom 2006, Petrozavodsk, Russia, July 3-7, 2006, Revised Selected Papers. Springer. ISBN 9783642228162.
- Brousentsov, N. P.; Maslov, S. P.; Ramil Alvarez, J.; Zhogolev, E.A. "Development of ternary computers at Moscow State University". Retrieved 20 January 2010.
- Ternary Arithmetic
- The ternary calculating machine of Thomas Fowler
- Ternary Base Conversion – includes fractional part, from Maths Is Fun
- Gideon Frieder's replacement ternary numeral system
- Visualization of numeral systems