BitArray以相反的顺序创建位

本文关键字:顺序 创建 BitArray | 更新日期: 2023-09-27 18:10:47

我有这样的代码:

ASCIIEncoding ascii = new ASCIIEncoding();
byte[] bytes= ascii.GetBytes("ok");

此时,如果我调试并查看byte变量中的内容,我得到:

111 107

,这是我所期望的。"0"是111"k"是107

,

BitArray bits = new BitArray(bytes);

此时,如果我调试并查看bits变量中的内容,我得到:

1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0

(实际数组有'True',上面的值为1,'False',上面的值为0)。

我想知道为什么会发生这种情况,为什么位数组没有填充为

0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 

BitArray以相反的顺序创建位

位数组按照数组顺序返回位(true或false)。如前所述,字节格式的顺序为:

4321年

8765

当迭代数组时,按顺序返回位:

5678年

1234

在进行心理转换时有点令人困惑,但排序并不是试图复制原始字节。

从文档

数组中的第一个字节表示0到7位,第二个字节表示0到7位字节表示第8位到第15位,以此类推。最小有效值: " bytes [0] &1"表示位0," bytes [0] &2"表示位1," bytes [0] &4"表示第2位,以此类推。