转换为高碱基

Converting to high bases

我正在用 C++ 编写一个程序,您可以在其中输入一个数字,它会列出该数字为回文的所有碱基。不过,我坚持的是如何为更高的基础做些什么,例如:

Converting 170 to base 90,

170 % 90 = 1 R 80
1 % 90 = 0 R 1

既然余数 80 在字母 Z 之上,即 35,你会怎么做?

我似乎找不到任何转换器可以升到这么高的基数来测试应该发生什么,所以如果有人能给我指出一个也很有帮助的转换器。

标准方法,对于最多 36 个碱基,就是你所说的:使用越来越多的字母。

在这种情况下,为什么不直接使用空格作为分隔符或逗号呢?让每个数字都用十进制整数表示。它将比提出 44 个新符号更具可读性。

由于程序实际上不必显示转换后的数字来查找回文,它可以在内部将每个 "digit" 表示为 32 位或 64 位的 int(在数组中) .这自然会很快,因为这样的匹配即使不罕见也可能不常见。

找到回文匹配后,可以任意输出。也许只打印 int 值的列表。看看history of hexadecimal:早期有各种稀奇古怪的方案,有的还用到了特殊字符。

直到 base 64 都有一些通用标准,但除此之外,您处于很大程度上未知的领域。