【发布时间】:2017-07-17 17:57:14
【问题描述】:
所以我正在创建一个读取字节数组并返回值的程序
byte[] buffer1 = File.ReadAllBytes(path).Skip(startPos).Take(lengthToExtract).ToArray();
byte[] reversed = buffer1.Reverse().ToArray();
string buffer2 = "";
foreach (var i in reversed)
{
buffer2 = buffer2 + i.ToString("X") + " ";
}
MessageBox.Show(buffer2);
int size = int.Parse(buffer2.Replace(" ", string.Empty), System.Globalization.NumberStyles.HexNumber);
return size;
但是当我得到值的十六进制字符串缓冲区的值的消息框时,它会取出“不重要的”十六进制数字,这会弄乱我的值。例如,如果读取的字节为 0x00,它将返回值为 0,而我正在向后读取结果字节,因此:0x04080 (0 4 0 80) 与 0x0040080 (00 04 00 80) 不同。我需要帮助,这弄乱了我的整个程序。
【问题讨论】:
标签: c# arrays numbers hex byte