我有两个号码。例如, base 8 中的5437和 base 256 中的6312817211 ..如何将这两者转换为 二进制表示 ?我知道如何转换 5437 ,这很容易,但我想要一个能够处理两者的算法,因为我无法转换更大的数字,因为它不适合int
,它只适用于BigInteger
我认为没有任何内置方法可以将BigInteger
基础256 转换为二进制表示( base 2)。任何建议或帮助都会很棒。我没有想法,我的大脑即将爆炸。
(我在C#btw工作)
答案 0 :(得分:0)
我不知道您如何表示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);
}