Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Python';C语言中的s解包函数#_C#_Python_Arrays_String_Unpack - Fatal编程技术网

C# Python';C语言中的s解包函数#

C# Python';C语言中的s解包函数#,c#,python,arrays,string,unpack,C#,Python,Arrays,String,Unpack,我正在寻找一种在C#中获得此过程结果的方法。确切地说,我试图根据给定的格式(该方法应返回一个数组)从二进制字符串中解包数据。有关更多信息,请参阅 struct.unpack('!hh', data[2:6]) 在C#中有这样做的方法吗?我想这就是你想要的 类似这样的内容是等效的(假设数据是字节数组): 这应该跳过前2个字节,然后将接下来的4个字节加载到两个short变量中。我想这就是您想要的 类似这样的内容是等效的(假设数据是字节数组): 这应该跳过前2个字节,然后将接下来的4个字节加载到两个

我正在寻找一种在C#中获得此过程结果的方法。确切地说,我试图根据给定的格式(该方法应返回一个数组)从二进制字符串中解包数据。有关更多信息,请参阅

struct.unpack('!hh', data[2:6])
在C#中有这样做的方法吗?

我想这就是你想要的

类似这样的内容是等效的(假设
数据
是字节数组):

这应该跳过前2个字节,然后将接下来的4个字节加载到两个
short
变量中。

我想这就是您想要的

类似这样的内容是等效的(假设
数据
是字节数组):


这应该跳过前2个字节,然后将接下来的4个字节加载到两个
short
变量中。

使用BinaryReader时,有一件事会让你头疼:它有固定的结尾。解包函数允许您指定不同的endianness,但是.NET并不能让它变得简单。如果您需要控制它,您必须求助于使用流,可能是Array.Reverse()和BitConverter。解包函数允许您指定不同的endianness,但是.NET并不能让它变得简单。如果您需要控制这一点,您必须求助于使用流,可能是Array.Reverse()和位转换器。
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();
    }
}