我有下面的代码来转换String ex。 “ 0000010100000101”为BigInteger类型的十进制数。现在,我想将十进制数转换回二进制,其结果应该与所有前导零相同的第一个String相同。我希望您可以使用从二进制转换为十进制的相同方法,因为它超级快,因为我将真正使用的二进制与十进制非常相同。
二进制字符串可以是任何东西,并且应该回到原来的样子。
BigInteger Decimalvalue = 0;
string binaryAsString = "0000010100000101";
int numOfBytes = binaryAsString.Length / 8;
if ((binaryAsString.Length % 8) != 0)
numOfBytes++;
byte[] bytes = new byte[numOfBytes];
for (int i = 1; i <= numOfBytes; ++i)
{
int start = binaryAsString.Length - i * 8;
int length = 8;
if (start < 0)
{
length += start;
start = 0;
}
bytes[numOfBytes - i] = Convert.ToByte(binaryAsString.Substring(start, length), 2);
}
Decimalvalue = new BigInteger(bytes.Concat(new byte[] { 0 }).ToArray());
Console.WriteLine("Decimal value = ");
Console.WriteLine(Decimalvalue);
我希望从Decimalvalue进行转换将返回原始的二进制字符串“ 0000010100000101”。