Los documentation for BitArray estados:
El primer byte de la matriz representa los bits 0 a 7, la segunda byte representa los bits 8 a 15, y así sucesivamente. El menos significativo bit de cada byte representa el valor de índice más bajo: "bytes [0] & 1" representa el bit 0, "bytes [0] & 2" representa el bit 1, "bytes [0] & 4" representa bit 2, y así sucesivamente.
Al indexar los bits, la convención debe comenzar en el extremo menos significativo, que es el lado derecho cuando se escribe en notación binaria. Sin embargo, al enumerar la matriz, comienza en el índice 0, por lo que se imprimen de izquierda a derecha en lugar de derecha a izquierda. Es por eso que mira hacia atrás.
Por ejemplo, la palabra 01011010 00101101 (90 45) sería indexado como:
0 1 0 1 1 0 1 0 - 0 0 1 0 1 1 0 1
----------------------- -----------------------
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
y que le pasarlo al constructor como new byte[] { 45, 90 }
ya que se pasa menos significativo en primer lugar. Cuando se imprima, se mostraría en orden de índice como: 1011010001011010
, que es el inverso de la notación binaria original.