C#结构创建和填充

托尼

我正在研究ZFS文件系统,并且遇到了一个相当复杂的结构,如下所示:

整个文件的长度为128个字节,并包含许多不同的元素。现在通常我只是使用位移来获取所需的信息,但是由于我对C#.net还是很陌生,所以我想知道是否有一种更简单的方法来解析此数据。

我已经在C#中看到StructLayoutand FieldOffset,但是我不知道它是否可以用于提取诸如三字节整数值之类的东西,或者是否可以从字节中提取出半字节。

这是可以使用结构完成的事情,还是我需要实现自己的方法来处理数据?

谢谢

https://people.freebsd.org/~gibbs/zfs_doxygenation/html/d0/d3c/structblkptr.html

火神苏拉克

不幸的是,在C#中,您不能像C中的位字段那样声明结构。您可能希望在内部将结构表示为a byte[],然后用于System.BitConverter帮助您进行一些转换。您可以使用提取3个字节的整数,BitConverter.ToUInt32然后屏蔽掉一个字节。对于少于8位的字段,您将必须使用移位和位掩码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在C#中创建和填充数组的功能方法

如何使用for循环创建和填充如下所示的结构?物镜

在C#中创建和使用PowerShell对象引用

C#使用gmail创建和发送Zip文件

在C#中创建和传递Type参数

如何在C#中创建和管理按钮矩阵

用熊猫创建和填充零行

创建和填充 Reactive FormArray Angular 10

如何使用for循环创建和填充列?

在数组中创建和填充元素

尝试使用for循环创建和填充矢量时出现超出范围的错误(C ++)

在C#中创建结构的浅表副本

在C中创建和初始化包含函数指针的结构的正确方法是什么?

理解 c# 结构 - 如何创建结构数组?

使用linq或Plain C#填充给定的对象结构

用两级数组C#填充复杂的结构

C#从底部到顶部填充层次结构树

C ++对象的创建和销毁

C结构填充问题

Azure 搜索:如何使用 C# 以编程方式创建和删除帐户

复制,创建和更新文件,将原始文件保留在C#中

在C#中,是否可以创建和应用实例方法字典?

C# ASP - 动态按钮创建和分配事件处理程序

如何使用 xml 为使用 C# 的统一游戏设计、创建和读取类

C# - 使用列表创建和更新列表,该列表由应用程序定期显示

C#到F#:在F#中创建和使用float [] []

如何在WPF中创建和使用全局变量(C#)

C# 如何创建和初始化 ValueTuples 的静态数组?

如何在.NET MVC中使用C#创建和删除边缘属性(Titan 1.0)?