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


    有时候,需要类型不同的数组转换,

    比如,从采集卡里读出的是Int16类型的数据,需要存储在数据库OLE对象里面,就需要转换成Byte型。

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

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

            private void ByteToInt16(Byte[] arrByte, int nByteCount, ref Int16[] destInt16Arr)
            {
                int i=0;
                try
                {
                    //按两个字节一个整数解析,前一字节当做整数低位,后一字节当做整数高位,调用系统函数转化
                    for (i = 0; i < nByteCount / 2; i++)
                    {
                        Byte[] tmpBytes = new Byte[2] { arrByte[2 * i + 0], arrByte[2 * i + 1] };
                        destInt16Arr[i] = BitConverter.ToInt16(tmpBytes, 0);
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show("Byte to Int16转化错误!i=" + e.Message + i.ToString());
                }
            }

  • 相关阅读:
    apollo-springboot 整合使用
    axon 过滤存储哪些事件
    springtools 解决lombok
    mylog 自定义注解打印 logger
    java高级应用:线程池全面解析
    监控 Java 线程池运行状态
    线程池获当前使用的活跃线程数
    JVM调优总结 -Xms -Xmx -Xmn -Xss(1)
    java高并发之线程池
    Nginx 网络事件
  • 原文地址:https://www.cnblogs.com/xyzrobot/p/7527034.html
Copyright © 2020-2023  润新知