如何将不同基数的巨大数字转换为 C# 中的二进制表示形式?

How can I convert HUGE Numbers in different bases to a binary representation in C#?

我有两个号码。例如,base 8 中的 5437 和 base 256 中的 6312817211.. 如何将这两个转换为 二进制表示?我知道如何转换 5437,这很简单,但我想要一个算法来处理 both,因为我无法转换更大的数字因为它不适合 int,它只适合 BigInteger,我认为它没有任何内置的方法来转换 base 256 的 BigInteger 到二进制表示 (base 2)。任何建议或帮助都会很棒。脑洞大开,脑子都要炸了

(我正在使用 C# 顺便说一句)

我不知道你如何表示 base256 整数,但如果你设法将它们转换为 BigInteger,你可以使用这样的转换器。

static string ToBinary(BigInteger val) {
    if (val < 0) throw new ArgumentOutOfRangeException(nameof(val));
    if (val == 0) return "0";

    var bits = new List<char>();
    while (val > 0) {
        bits.Insert(0, ((val & 1) == 1) ? '1' : '0');
        val >>= 1;
    }
    return string.Concat(bits);
}