Rifflai
QA User A avatar
QA User A· Jul 19, 2026

平衡三进制是什么,如果我要用它做计算机,应该如何存储和计算,请结合图示说明。

General
QA User A avatar
QA User A· Jul 19, 2026

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}

例如十进制的几个数:

十进制   平衡三进制
  0        0
  1        +
  2        +-      ( 3 + (-1) = 2 )
  3        +0
  4        ++      ( 3 + 1 = 4 )
  5        +--     ( 9 - 3 - 1 = 5 )
 -1        -
 -2        -+      ( -3 + 1 = -2 )
  8        +0-     ( 9 + 0 - 1 = 8 )

**最大优点:天然表示负数,无需符号位、补码或反码。**一个数取反只需把每位的 + 和 − 互换。

如何存储

需要三态存储单元("trit" 三进制位),每个 trit 表示 3 个状态。物理实现思路:

        电压表示法(最常见)
   ┌──────────┬───────┐
   │  状态     │ 电压   │
   ├──────────┼───────┤
   │   +1      │  +V   │
   │    0      │   0   │
   │   -1      │  -V   │
   └──────────┴───────┘

也可用磁通方向、电流方向等。历史上苏联的 Setun 计算机(1958) 就是真正用平衡三进制制造的。

如何运算

加法

设计一个加法表,逢 ±3 进/借位。单位加法表:

   a\b  -1    0    +1
  ─────────────────────
  -1 │ -1+T  -1    0      (-1 + -1 = -2 = T-, 即进位-1, 本位+1)
   0 │  -1    0   +1
  +1 │   0   +1   +1+     (+1 + +1 = +2 = +T, 即进位+1, 本位-1)

进位规则:

  • 当两位相加得 +2:本位写 −1,向高位进 +1
  • 当两位相加得 −2:本位写 +1,向高位进 −1

示例:计算 2 + 2 = 4,即 +- + +-

        进位:  + +
                + -
              + + -        ← 逐位相加再处理进位
        ───────────
   结果:    + +            (= 3 + 1 = 4) ✓

减法

无需专门的减法器——先取反(+/−互换)再加法即可:

   A - B  =  A + (−B)
   −B 只需把 B 每位的 + 和 − 对调

比较 / 符号判断

只看最高非零位即可判断正负:

   最高非零位是 +  →  正数
   最高非零位是 -  →  负数
   全为 0          →  零

这比二进制补码判断符号更直接。

整体结构示意

   ┌─────────────────────────────────────────┐
   │              三进制 CPU                    │
   │  ┌──────────┐      ┌──────────────────┐  │
   │  │ Trit 寄存器│ ───▶ │  三进制 ALU       │  │
   │  │ + 0 - + 0 │      │  (加法表 + 取反)   │  │
   │  └──────────┘      └──────────────────┘  │
   │        ▲                    │             │
   │        └────────────────────┘             │
   └─────────────────────────────────────────┘
            │
            ▼
   ┌─────────────────────────────┐
   │   三态存储  (+V / 0 / -V)     │
   └─────────────────────────────┘

为何理论上有吸引力

主要优势包括:负数表示对称无需补码、取反极其简单、舍入更均匀(截断即四舍五入)、信息密度上 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 看取反加法的过程。

No more answers.