平衡三进制
定义 平衡三进制 是一种非标准的 记数系统,它是一种基数为 的进位制系统,其中用于计数的符码为 。
与标准基数 进制系统对比:其中的计数符号为 。以平衡三进制所记录的数字可以表达出全部整数,由于 的引入,而且对负数不必使用额外的负号;应用在于解决 秤重问题,或在一些早期的计算机中使用。[1]
有些地方使用不同符码来表示平衡三进制中的三个数符。本文中以 表示。
平衡三进制和其他进制一样,各位的数字和位权相乘然后叠加起来,就是该数的数值。
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;
}
python
def bt_to_dec(s: str) -> int:
res = 0
for ch in s:
res *= 3
if ch == '1':
res += 1
elif ch == 'T':
res -= 1
return res
平衡三进制,维基百科,https://zh.wikipedia.org/wiki/平衡三進位 ↩︎