BitArray以相反的顺序创建位

时间:2014-06-28 01:16:24

标签: c#

我有这段代码:

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

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

111 107

这是我所期待的。 " O"是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 

代替。

2 个答案:

答案 0 :(得分:0)

来自documentation

  

数组中的第一个字节表示第0到第7位,第二个字节   byte表示位8到15,依此类推。 最不重要   每个字节的位代表最低的索引值:“bytes [0]& 1”   表示位0,“bytes [0]& 2”表示位1,“bytes [0]& 4”   代表第2位,依此类推。

答案 1 :(得分:0)

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

8765 4321

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

1234 5678

进行心理翻译时有点混乱,但排序并不是要重现原始字节。