public static double DoubleFromBytes(byte b0, byte b1, byte b2, byte b3, byte b4, byte b5, byte b6, byte b7) { #if FAST_CONVERT Double2Bytes d2b = default(Double2Bytes); d2b.Byte0 = b0; d2b.Byte1 = b1; d2b.Byte2 = b2; d2b.Byte3 = b3; d2b.Byte4 = b4; d2b.Byte5 = b5; d2b.Byte6 = b6; d2b.Byte7 = b7; return(d2b.Double); #else #if BIG_ENDIAN return(BitConverter.ToDouble(new byte[] { b7, b6, b5, b4, b3, b2, b1, b0 }, 0)); #else return(BitConverter.ToDouble(new byte[] { b0, b1, b2, b3, b4, b5, b6, b7 }, 0)); #endif #endif }
public static void DoubleToBytes(double value, out byte b0, out byte b1, out byte b2, out byte b3, out byte b4, out byte b5, out byte b6, out byte b7) { #if FAST_CONVERT Double2Bytes d2b = default(Double2Bytes); d2b.Double = value; b0 = d2b.Byte0; b1 = d2b.Byte1; b2 = d2b.Byte2; b3 = d2b.Byte3; b4 = d2b.Byte4; b5 = d2b.Byte5; b6 = d2b.Byte6; b7 = d2b.Byte7; #else byte[] bytes = BitConverter.GetBytes(value); #if BIG_ENDIAN b0 = bytes[7]; b1 = bytes[6]; b2 = bytes[5]; b3 = bytes[4]; b4 = bytes[3]; b5 = bytes[2]; b6 = bytes[1]; b7 = bytes[0]; #else b0 = bytes[0]; b1 = bytes[1]; b2 = bytes[2]; b3 = bytes[3]; b4 = bytes[4]; b5 = bytes[5]; b6 = bytes[6]; b7 = bytes[7]; #endif #endif }