如何将BitArray转换为单个int?

如何将BitArray转换为单个int ? 最快的方式请…

 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]; } 
 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; } 

接受这个职位(#43935747)。 值X是短时间,我设置了两位(6和10),如下所示:short 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的具体所有位,并将其放入一个数组或types如bool Val1 = bit1,bool Val2 = bit2 ….

我是一个新手,我认为这是非常简单的你guyes ..