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); }
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()); }
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); } }
public FloatItem(string text, FloatSwap swap) : base(text) { SwapType = swap; }