是否有更快的方法将 Boolean 数组转换为除此之外的十进制字符串:
while (temp > 0)
{
str = chars[(int)(temp % 10)] + str;
temp /= 10;
}
答案 0 :(得分:1)
您可以使用Convert.ToInt32()函数。
string binaryString = "10001011";
string decimalString = Convert.ToInt32(binaryString,2).ToString();
答案 1 :(得分:1)
我将假设您已将您的布尔数组命名为“arrBoolean”。这个答案从mmhasannn的答案中获得灵感,并且可能不一定更快。但它修复了他的答案,没有考虑你的布尔数组。
string binaryString = "";
for (int ii = 0; ii < arrBoolean.Length; ii++)
{
if (arrBoolean[ii])
binaryString += "1";
else
binaryString += "0";
}
string decimalString = Convert.ToInt32(binaryString, 2).ToString();
编辑:以下是关于Krumia建议的更新答案。上述答案是为那些喜欢它的人保留的。
StringBuilder binaryBuilder = new StringBuilder();
for (int ii = 0; ii < arrBoolean.Length; ii++)
{
if (arrBoolean[ii])
binaryBuilder.Append("1");
else
binaryBuilder.Append("0");
}
string decimalString = Convert.ToInt32(binaryBuilder.ToString(), 2).ToString();
参考文献: