Как я могу преобразовать BitArray
в один int
? Самый быстрый способ PLS...
Как преобразовать BitArray в один int?
Ответ 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....
Я новичок, и я думаю, что это довольно просто для вас, парни..