平衡三进制

定义 平衡三进制 是一种非标准的 记数系统在新窗口打开,它是一种基数为 33 的进位制系统,其中用于计数的符码为 1,0,1-1,0,1

与标准基数 33 进制系统对比:其中的计数符号为 0,1,20,1,2。以平衡三进制所记录的数字可以表达出全部整数,由于 1-1 的引入,而且对负数不必使用额外的负号;应用在于解决 秤重问题在新窗口打开,或在一些早期的计算机中使用。[1]

有些地方使用不同符码来表示平衡三进制中的三个数符。本文中以 T\mathrm{T} 表示。

平衡三进制和其他进制一样,各位的数字和位权相乘然后叠加起来,就是该数的数值。

cpp
int bt_to_dec(string s) {
    int res = 0;
    for (auto ch : s) {
        res *= 3;
        if (ch == '1') {
            res += 1;
        } else if (ch == 'T') {
            res -= 1;
        }
    }
    return res;
}

  1. 平衡三进制,维基百科,https://zh.wikipedia.org/wiki/平衡三進位在新窗口打开 ↩︎