【发布时间】:2015-06-09 19:41:45
【问题描述】:
描述我的错误理解的最佳方式是使用代码本身:
var emptyByteArray = new byte[2];
var specificByteArray = new byte[] {150, 105}; //0x96 = 150, 0x69 = 105
var bitArray1 = new BitArray(specificByteArray);
bitArray1.CopyTo(emptyByteArray, 0); //[0]: 150, [1]:105
var hexString = "9669";
var intValueForHex = Convert.ToInt32(hexString, 16); //16 indicates to convert from hex
var bitArray2 = new BitArray(new[] {intValueForHex}) {Length = 16}; //Length=16 truncates the BitArray
bitArray2.CopyTo(emptyByteArray, 0); //[0]:105, [1]:150 (inversed, why??)
我一直在阅读 bitarray 从 LSB 迭代到 MSB,那么从十六进制字符串开始初始化 bitarray 的最佳方法是什么?
【问题讨论】:
-
在十六进制
0x9669中,69 是最低有效字节,应首先出现在任何位或字节数组中。将其复制到一个 int 数组中,您将获得一个元素,0x9669。
标签: c# endianness bitarray