Подтвердить что ты не робот

Как преобразовать BitArray в один int?

Как я могу преобразовать BitArray в один int? Самый быстрый способ PLS...

4b9b3361

Ответ 1

private int getIntFromBitArray(BitArray bitArray)
{

    if (bitArray.Length > 32)
        throw new ArgumentException("Argument length shall be at most 32 bits.");

    int[] array = new int[1];
    bitArray.CopyTo(array, 0);
    return array[0];

}

Ответ 2

private int getIntFromBitArray(BitArray bitArray)
{
    int value = 0;

    for (int i = 0; i < bitArray.Count; i++)
    {
        if (bitArray[i])
            value += Convert.ToInt16(Math.Pow(2, i));
    }

    return value;
}

Ответ 3

Отправляясь на этот пост (# 43935747). Значение X является коротким tpe, для которого я установил два бита (6 и 10), как показано ниже:  короткий X = 1;

        var result = X;
        var bitsToSet = new [ ] { 5,9 };
        foreach ( var bitToSet in bitsToSet )
            {
            result+=( short ) Math.Pow ( 2,bitToSet );
            }
        string binary = Convert.ToString ( result,2 );

Теперь я хотел бы прочитать конкретные биты из значения X и поместить их в массив или бит типа типа bool Val1 = бит1, bool Val2 = бит2....

Я новичок, и я думаю, что это довольно просто для вас, парни..