把byte数组转为int数组

sdfgrtyu 2017-04-10 04:29:50
请问按照4个byte是一个int,把byte数组转为int数组,怎么写?
...全文
574 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuggzu 2017-04-10
  • 打赏
  • 举报
回复
我发现论坛里很多人问问题老描述不清楚。。。。。。
xuzuning 2017-04-10
  • 打赏
  • 举报
回复
认真阅读 https://technet.microsoft.com/zh-cn/library/system.bitconverter(v%3Dvs.95).aspx 然后按你的需求,选择合适的方法
by_封爱 版主 2017-04-10
  • 打赏
  • 举报
回复

            var ar = new List<int>();

            var a = new List<byte>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2 };

            for (int i = 0; i < a.Count / 4; i++)
            {
                int z = 4 * i ;
                var b = BitConverter.ToInt32(a.Skip(z).Take(4).ToArray(), 0);
                //如果你的数据需要反转的话.那么在take后面加Reverse()
                ar.Add(b);
            }
stherix 2017-04-10
  • 打赏
  • 举报
回复
byte[] data=new byte[]{xxxxxx}; int[] arr=new int[data.Length/4]; for(int i=0;i<arr.Length;i++) { arr[i]=BitConverter.ToInt32(data,i*4); }
sdfgrtyu 2017-04-10
  • 打赏
  • 举报
回复
正确,,,,
by_封爱 版主 2017-04-10
  • 打赏
  • 举报
回复
哦 我知道了...是不是这样的. 比如 这个byte数组 有40个字节.. 那么你取4个 为一个int 最终输出的 是10个int 是这样吗?
sdfgrtyu 2017-04-10
  • 打赏
  • 举报
回复
引用 5 楼 stherix 的回复:
BitConverter.ToInt32(byte数组); 但是可能这个数组需要反序才能转换成正确的值 要看是高字节在前还是低字节在前了
是正确的
sdfgrtyu 2017-04-10
  • 打赏
  • 举报
回复
引用 7 楼 diaodiaop 的回复:
这不豆么吗. byte数组 不就是int数组吗???? 只是数字没那么大而已.... 这玩意转不转有什么用啊...
四个字节是一个int
sdfgrtyu 2017-04-10
  • 打赏
  • 举报
回复
引用 6 楼 angel6709 的回复:
new byte[]{1,2,3,4 }.Select(a=>(int)a).ToArray();
请问这个方法是按照四个字节是一个int转的吗?
by_封爱 版主 2017-04-10
  • 打赏
  • 举报
回复
这不豆么吗. byte数组 不就是int数组吗???? 只是数字没那么大而已.... 这玩意转不转有什么用啊...
angel6709 2017-04-10
  • 打赏
  • 举报
回复
new byte[]{1,2,3,4 }.Select(a=>(int)a).ToArray();
stherix 2017-04-10
  • 打赏
  • 举报
回复
BitConverter.ToInt32(byte数组); 但是可能这个数组需要反序才能转换成正确的值 要看是高字节在前还是低字节在前了
sdfgrtyu 2017-04-10
  • 打赏
  • 举报
回复
引用 3 楼 angel6709 的回复:
看你那个byte是高位了 byte[4] i=new {1,2,3,4 }; int ii=i[0]+i[1]<<8+i[2]<<16+i[3]<<24
转成int数组
angel6709 2017-04-10
  • 打赏
  • 举报
回复
看你那个byte是高位了 byte[4] i=new {1,2,3,4 }; int ii=i[0]+i[1]<<8+i[2]<<16+i[3]<<24
sdfgrtyu 2017-04-10
  • 打赏
  • 举报
回复
引用 1 楼 diaodiaop 的回复:

var x=BitConverter.ToInt32(new byte[4] {11,22,33,44 }, 0);
Console.WriteLine(x);
转成int数组
by_封爱 版主 2017-04-10
  • 打赏
  • 举报
回复

var x=BitConverter.ToInt32(new byte[4] {11,22,33,44 }, 0);
Console.WriteLine(x);

110,566

社区成员

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

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

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