Ejemplo n.º 1
0
        public static byte[] GetBytes(float value, FloatSwap IsSwap)
        {
            var  t = BitConverter.GetBytes(value);
            byte temp;

            switch (IsSwap)
            {
            case FloatSwap.CNormal:

                temp = t[0];        //1,2交换
                t[0] = t[1];
                t[1] = temp;

                temp = t[2];        //3,4交换
                t[2] = t[3];
                t[3] = temp;
                break;

            case FloatSwap.CSwap:
                Array.Reverse(t);
                break;
            }

            return(t);
        }
Ejemplo n.º 2
0
        public static ItemsBase[] BuildList(FloatSwap swap, string[] strName)
        {
            if (strName == null || strName.Length <= 0)
            {
                return(null);
            }

            var lst = new List <ItemsBase>(strName.Length);

            for (int i = 0; i < strName.Length; i++)
            {
                lst.Add(new FloatItem(strName[i], swap));
            }

            return(lst.ToArray());
        }
Ejemplo n.º 3
0
        public static float ToFloat(byte[] data, int start, FloatSwap isSwap)
        {
            if (start < 0)
            {
                return(0);
            }

            if (data.Length - start < 4)
            {
                return(0);
            }

            byte[] temp = new byte[4];

            switch (isSwap)
            {
            case FloatSwap.CNormal:

                temp[0] = data[start + 1];
                temp[1] = data[start + 0];

                temp[2] = data[start + 3];
                temp[3] = data[start + 2];
                break;

            case FloatSwap.C3210:
                //for (int i = 0; i < 4; i++)
                //{
                //    temp[i] = data[start + i];
                //}

                temp[0] = data[start + 3];
                temp[1] = data[start + 2];
                temp[2] = data[start + 1];
                temp[3] = data[start + 0];

                break;

            case FloatSwap.CSwap:

                //temp[0] = data[start + 3];
                //temp[1] = data[start + 2];
                //temp[2] = data[start + 1];
                //temp[3] = data[start + 0];

                for (int i = 0; i < 4; i++)
                {
                    temp[i] = data[start + i];
                }

                Array.Reverse(temp);

                break;
            }

            //if(isSwap)
            //{

            //}
            //else
            //{
            //    for(int i=0;i<4;i++)
            //    {
            //        temp[i]=data[start + i];
            //    }
            //}

            try
            {
                return(BitConverter.ToSingle(temp,
                                             0));
            }
            catch (Exception)
            {
                return(0);
            }
        }
Ejemplo n.º 4
0
 public FloatItem(string text, FloatSwap swap)
     : base(text)
 {
     SwapType = swap;
 }