使用LSB c#将字符串转换为int32

时间:2017-12-09 01:57:24

标签: c# string

我有二进制字符串和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值

1 个答案:

答案 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。