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
。
位数组按照数组顺序返回位(true或false)。如前所述,字节格式的顺序为:
4321年8765
当迭代数组时,按顺序返回位:
5678年1234
在进行心理转换时有点令人困惑,但排序并不是试图复制原始字节。
从文档
数组中的第一个字节表示0到7位,第二个字节表示0到7位字节表示第8位到第15位,以此类推。最小有效值: " bytes [0] &1"表示位0," bytes [0] &2"表示位1," bytes [0] &4"表示第2位,以此类推。