我有二进制字符串和Int32数组。
如何在int数组上将二进制字符串(每个字符串的11位)转换为Int32值(11 LSB)?
我试过了:
for (int i = 0; i <(string.Length); i++) {
if (count1 >= string.Length - 21)
break;
else
string = string.Insert(count1, "000000000000000000000");
count1 += 31;
}
int numOfBytes = string.Length / 32;
int[] ints = new int[numOfBytes];
for (int i = 0; i < numOfBytes; ++i) {
ints[i] = Convert.ToInt32(string.Substring(32 * i, 32), 2);
}
但它返回false值
答案 0 :(得分:0)
Int32[] BinaryStringToInt32Array(const string binaryString, const int bitCount)
{
Int32[] results = new Int32[binaryString.Length/bitCount];
for (int i = 0; i < results.Length; i++)
{
string str = binaryString.Substring(i * bitCount, bitCount);
results[i] = Convert.ToInt32(str, 2);
}
return results;
}
请注意,如果binaryString的长度不是bitCount的倍数,则此函数将忽略所有剩余的位。在你的情况下,bitCount是11。