C# Byte数组与Int16数组之间的转换(转)

u

这里提供两个函数,完成相互转换。

        private void Int16ToByte(Int16[] arrInt16, int nInt16Count, ref Byte[] destByteArr)
        {
            //高字节放在前面,低字节放在后面
            for (int i = 0; i < nInt16Count; i++ )
            {
                destByteArr[2 * i + 0] = Convert.ToByte((arrInt16[i] & 0xFF00) >> 8);
                destByteArr[2 * i + 1] = Convert.ToByte((arrInt16[i] & 0x00FF));
            }
        }

        private void ByteToInt16(Byte[] arrByte, int nByteCount, ref Int16[] destInt16Arr)
        {
            //按两个字节一个整数解析,前一字节当做整数高位,后一字节当做整数低位
            for (int i = 0; i < nByteCount / 2; i++)
            {
                destInt16Arr[i] = Convert.ToInt16(arrByte[2 * i + 0] << 8 + arrByte[2 * i + 1]);
            }
        }

 

using System;

int  i = 123;
byte [] intBuff = BitConverter.GetBytes(i);     // 将 int 转换成字节数组
lob.Write(intBuff, 0, 4);
i = BitConverter.ToInt32(intBuff, 0);           // 从字节数组转换成 int

double x = 123.456;
byte [] doubleBuff = BitConverter.GetBytes(x);  // 将 double 转换成字节数组
lob.Write(doubleBuff, 0, 8);
x = BitConverter.ToDouble(doubleBuff, 0);       // 从字节数组转换成 double

posted on   xihong  阅读(4451)  评论(1编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2015-07-09 svn服务器端回退版本 (转)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示