数组 二进制数组 转换问题?

xiaohe_83030489 2007-08-07 04:21:45
各位大虾:
最近我遇到数组和二进制数组相互转换问题的问题,在网上找了很久都没有找到一个解决办法,请各位帮帮看看.谢谢,先!
问题如下:
有一个数组(类型可以是int,float,double),怎样将它转换成byte[]类型,同时、又如何将byte[]类型转换成对应的(int,float,double)数组.
请各位帮帮忙!
...全文
164 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohe_83030489 2007-08-08
  • 打赏
  • 举报
回复
问题解决,谢谢zswang(伴水清清)
王集鹄 2007-08-08
  • 打赏
  • 举报
回复
这两分还不好混-_-!!!
再给一个方案:

byte[] B = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
0x07, 0x08, 0x09, 0x0A, 0x0B };
int[] A = new int[3];
MemoryStream vMemoryStream = new MemoryStream();
Marshal.Copy(B, 0, Marshal.UnsafeAddrOfPinnedArrayElement(A, 0), B.Length);
Console.WriteLine("a[0]={0:X},a[1]={1:X},a[2]={2:X}", A[0], A[1], A[2]);

A[0] = 0x01234501;
A[1] = 0x01234502;
A[2] = 0x01234503;
Marshal.Copy(A, 0, Marshal.UnsafeAddrOfPinnedArrayElement(B, 0), A.Length);
Console.WriteLine(BitConverter.ToString(B));
andy888666 2007-08-08
  • 打赏
  • 举报
回复
byte 实际上就是unsigned char
xiaohe_83030489 2007-08-08
  • 打赏
  • 举报
回复
不行,我用的.NET Framework1.1 ,Buffer.BlockCopy是高版本的!!!
王集鹄 2007-08-08
  • 打赏
  • 举报
回复
//用Buffer.BlockCopy方法搞定

byte[] B = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
0x07, 0x08, 0x09, 0x0A, 0x0B };
int[] A = new int[3];
Buffer.BlockCopy(B, 0, A, 0, B.Length);
Console.WriteLine("a[0]={0:X},a[1]={1:X},a[2]={2:X}", A[0], A[1], A[2]);
//a[0]=3020100,a[1]=7060504,a[2]=B0A0908
A[0] = 0x01234501;
A[1] = 0x01234502;
A[2] = 0x01234503;
Buffer.BlockCopy(A, 0, B, 0, B.Length);
Console.WriteLine(BitConverter.ToString(B));
//01-45-23-01-02-45-23-01-03-45-23-01
xiaohe_83030489 2007-08-08
  • 打赏
  • 举报
回复
高手啦,高手都跑到哪里去了?
xiaohe_83030489 2007-08-07
  • 打赏
  • 举报
回复
先试试,谢谢yaoshuwen!
yaoshuwen 2007-08-07
  • 打赏
  • 举报
回复
Convert \BitConvert

110,571

社区成员

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

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

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