По сути, он рассматривает биты в порядке, противоположном тому, который вы ожидали - вы не показали, как отображаете входной двоичный файл в BitArray
, но в результате вы рассматриваете его как 1100, а не 0011.
Документация не ясна, правда, но она работает так, как Я бы ожидал, что: bitArray[0]
представляет наименьшее значимое значение, как обычно это при обсуждении двоичного кода (поэтому бит 0 равен 0/1, бит 1 равен 0/2, бит 2 равен 0/4, бит 3 равен 0/8 и т. д.). Например:
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
BitArray bits = new BitArray(8);
bits[0] = false;
bits[1] = true;
int[] array = new int[1];
bits.CopyTo(array, 0);
Console.WriteLine(array[0]); // Prints 2
}
}