标题：三进制
三进制
三进制是“逢三进一,退一还三”的进制。
三进制数码包括“0，1和2。”电信号（—1）、0、1。
三进制数位小数点前从右往左依次是1位，3位，9位，27位，81位，243位……
三进制数位小数点后从左往右依次是3分位，9分位，27分位，81分位……
写时注意应打括号，加下标的3，如（1201）3。读作一二零一，不能读成一千二百零一，这是因为它们对应于27位，9位，3位和1位，不是千百十个位！
一些常见的十进制数换三进制表
十进制 三进制
0 0
1 1
2 2
3 10
4 11
5 12
6 20
7 21
8 22
9 100
10 101
... ...
三进制在实际生活中较少用到，下面举一例：
三进制数是以下问题的答案： 
允许在天平两端放置砝码，问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等都是三进制数的数位。
定义
三进制是以3为底数的进位制。
曾经被莫斯科大学科研人员用于计算机,在光子计算机研究领域也有涉及。
对称三进制能比二进制更方便的表示所有整数。
表示形式
三进制一般有两种表示形式：
一种是以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=1, 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
非：&not;F=1，&not;0=0，&not;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”成了莫斯科国立大学三进制计算机的绝唱。由于得不到上级的支持，这个科研项目不得不无限期停顿下来。