Edited Jul 19, 2026
平衡三进制(Balanced Ternary)是一种以 3 为基数、但每位取值为 {-1, 0, +1}(而非普通三进制的 {0, 1, 2})的数制。通常用符号 {−, 0, +} 或 {T, 0, 1} 表示,其中 T 代表 −1。
基本原理
每一位的权重是 3 的幂(3⁰=1, 3¹=3, 3²=9, 3³=27…),但系数可以是负的。
一个数的值 = Σ(dᵢ × 3ⁱ),其中 dᵢ ∈ {−1, 0, +1}
例如十进制的几个数:
**最大优点:天然表示负数,无需符号位、补码或反码。**一个数取反只需把每位的 + 和 − 互换。
如何存储
需要三态存储单元("trit" 三进制位),每个 trit 表示 3 个状态。物理实现思路:
也可用磁通方向、电流方向等。历史上苏联的 Setun 计算机(1958) 就是真正用平衡三进制制造的。
如何运算
加法
设计一个加法表,逢 ±3 进/借位。单位加法表:
进位规则:
- 当两位相加得 +2:本位写 −1,向高位进 +1
- 当两位相加得 −2:本位写 +1,向高位进 −1
示例:计算 2 + 2 = 4,即 +- + +- :
减法
无需专门的减法器——先取反(+/−互换)再加法即可:
比较 / 符号判断
只看最高非零位即可判断正负:
这比二进制补码判断符号更直接。
整体结构示意
为何理论上有吸引力
主要优势包括:负数表示对称无需补码、取反极其简单、舍入更均匀(截断即四舍五入)、信息密度上 3 接近最优基数 e≈2.718。
主要劣势是缺乏可靠廉价的三态电子元件——现代半导体天然是双稳态(开/关),三态电路成本高、抗噪差,这也是二进制最终胜出的根本原因。
需要我用具体某个数(比如你给一个十进制数)走一遍完整的加法或乘法运算过程吗?
做好了——这是一个可交互的演示页面,包含三部分:
架构图 用 SVG 画出了三进制 CPU 的结构: Trit 寄存器组、以「加法表 + 取反」为核心的 ALU、三态存储(+V/0/−V 对应 +1/0/−1),以及靠"最高非零位"判正负的控制单元。
逐步运算器 是核心——输入任意两个十进制数,选 + − × ÷,它会一步步动画展示三进制内部怎么算:
- 加法: 逐位相加,逢 ±3 进位,高亮当前位并显示进位行
- 减法: 演示 A − B = A + (−B),先把 B 每位 +/− 对调再走加法
- 乘法: 移位相加,逐位扫描乘数
- 除法: 重复减法求商和余数
每一步下方都有中文解释,可以用「上一步/下一步」反复看。+ 显示为绿色、− 为红色、0 为灰色。
速查对照表 列出常见十进制数对应的平衡三进制及其展开式。
转换逻辑我已用 −50 到 50 全程往返测试通过。你可以直接打开试试,比如输入 14 × 8 看移位相加,或 14 − 8 看取反加法的过程。
1十进制 平衡三进制20 031 +42 +- ( 3 + (-1) = 2 )53 +0
