我正在寻找一种在C#中获取此过程结果的方法。确切地说,我试图根据给定的格式从二进制字符串中解包数据(该方法应该返回一个数组)。有关详细信息,请参阅http://docs.python.org/2/library/struct.html。
struct.unpack('!hh', data[2:6])
有没有办法在C#中这样做?
答案 0 :(得分:6)
我认为BinaryReader就是你想要的。
这样的东西就是等价的(假设data
是一个字节数组):
using (var stream = new MemoryStream(data)) {
using (var reader = new BinaryReader(stream)) {
stream.Seek(2, SeekOrigin.Begin);
var value1 = reader.ReadInt16();
var value2 = reader.ReadInt16();
}
}
这应该跳过前2个字节,然后将接下来的4个字节加载到两个short
变量中。