【发布时间】:2019-05-29 11:22:23
【问题描述】:
下面的代码将大二进制 string binaryAsString = "1010101011101011......." 转换为 BigInteger 十进制,但这非常慢,需要很长时间才能完成。有没有更快的方法来完成这项工作?在此之前,我在将BitArray 转换为string 时遇到了问题。我的第一个代码花了很长时间,但我发现了新代码,它的速度比我想象的要快得多。我希望我能找到一种类似的更快的方法来做到这一点,因为这确实需要很长时间。
我尝试使用String whatever = Convert.ToString(binaryAsString, 2);,但这根本不起作用。
// converting the binary String to decimal
BigInteger Decimalvalue = 0;
foreach (char c in binaryAsString)
{
Decimalvalue <<= 1;
Decimalvalue += c == '1' ? 1 : 0;
}
我想要更快的代码来完成上面代码应该做的事情。
【问题讨论】:
-
您希望将带有 0 和 1 的字符串转换为等效的十进制数,或者您希望保留 0 和 1 并将字符串转换为数字?字符串可以有多大?
-
我希望将 0 和 1 转换为等效的十进制数。你的意思是保持 0 和 1 并将字符串转换为 number 。非常大,可能相当于 1 GB 文件,但现在非常慢,相当于 1 MB
-
二进制值
11是十进制的3也是11十一,1和0保留 -
不,我想要的是十进制的 11 = 3
标签: c#