C# byte数组如何转化成一个结构体

mengyq_82 2010-09-13 03:06:57
public struct a
{
public short a1;
public short a2;
public short a3;
public short a4;
}
请教如何将一个byte[]转化成a的结构
...全文
328 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengyq_82 2010-09-13
  • 打赏
  • 举报
回复
谢谢,问题解决
heiha008 2010-09-13
  • 打赏
  • 举报
回复
三楼的Ok
lizhengnan 2010-09-13
  • 打赏
  • 举报
回复
如果这个数据结构是可序列化的,这应该很容易的吧.
无名大白 2010-09-13
  • 打赏
  • 举报
回复
学习中。。。
百事烟 2010-09-13
  • 打赏
  • 举报
回复
二进制和文本模式不一样,不要这样填充,没有意义,你的byte[]应该是从文件中读来的,不用管,读来就行

内存中有高位和低位,这样就行了
byte[] byteAry = {1,0,1,0,1,0,1,0};
mengyq_82 2010-09-13
  • 打赏
  • 举报
回复
to:Delphigis
按照您的代码,填充byteAry={00,01,00,01,00,01,00,01}
得到的fileInfo 的值为256,256,256,256
铛铛 2010-09-13
  • 打赏
  • 举报
回复
结构体序列化后变成byte数组

byte数组反序列化后.....
百事烟 2010-09-13
  • 打赏
  • 举报
回复
        [StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct FILE_TAIL_INFO
{
public short a1;
public short a2;
public short a3;
public short a4;
}

byte []byteAry = new byte[Marshal.SizeOf(typeof(FILE_TAIL_INFO)];
//填充byteAry

IntPtr ptr = GCHandle.Alloc(byteAry, GCHandleType.Pinned).AddrOfPinnedObject();
FILE_TAIL_INFO fileInfo =
(FILE_TAIL_INFO)Marshal.PtrToStructure(ptr, typeof(FILE_TAIL_INFO));
xiaotiange 2010-09-13
  • 打赏
  • 举报
回复
头一次见到
MSDNXGH 2010-09-13
  • 打赏
  • 举报
回复
楼主,你这个问题很奇怪。。。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧