我正在尝试通过8位(每个8位= 1 ASCII字符)将位字符串转换为ASCII字符。
public string BitsToChar(string InpS)
{
string RetS = "";
for (int iCounter = 0; iCounter < InpS.Length / 8; iCounter++)
RetS = System.String.Concat(RetS, (char)Convert.ToByte(InpS.Substring(iCounter * 8, 8)), 2);
return RetS;
}
它引发System.OverflowException:对于无符号字节,值太大或太小。
对于我来说,目前尚不清楚二进制字符串的8位部分对于8位字节类型可能太小还是太大。
有任何想法吗?谢谢你。
尝试这样的事情:
private static Char ConvertToChar(String value) {
int result = 0;
foreach (Char ch in value)
result = result * 2 + ch - '0';
return (Char) result;
}
public string BitsToChar(string value) {
if (String.IsNullOrEmpty(value))
return value;
StringBuilder Sb = new StringBuilder();
for (int i = 0; i < value.Length / 8; ++i)
Sb.Append(ConvertToChar(value.Substring(8 * i, 8)));
return Sb.ToString();
}
...
String result = BitsToChar("010000010010000001100010"); // <- "A b"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句