// // Floating point // #if UNSAFE /// <summary> /// Writes a 32 bit floating point value /// </summary> public unsafe void Write(float source) { uint val = *((uint *)&source); #if BIGENDIAN val = NetUtility.SwapByteOrder(val); #endif Write(val); }
/// <summary> /// Writes a 64 bit floating point value /// </summary> public unsafe void Write(double source) { ulong val = *((ulong *)&source); #if BIGENDIAN val = NetUtility.SwapByteOrder(val); #endif Write(val); }
/// <summary> /// Writes a 64 bit floating point value /// </summary> public void Write(double source) { var value = (ulong)BitConverter.DoubleToInt64Bits(source); #if BIGENDIAN value = NetUtility.SwapByteOrder(value); #endif Write(value); }
// // Floating point // /// <summary> /// Writes a 32 bit floating point value /// </summary> public void Write(float source) { var value = (uint)BitConverter.SingleToInt32Bits(source); #if BIGENDIAN // swap byte order value = NetUtility.SwapByteOrder(value); #endif Write(value); }
/// <summary> /// Writes a 64 bit floating point value /// </summary> public unsafe NetBuffer Write(double source) { ulong val = *((ulong *)&source); #if BIGENDIAN val = NetUtility.SwapByteOrder(val); #endif Write(val); return(this); }
// // Floating point // #if UNSAFE /// <summary> /// Writes a 32 bit floating point value /// </summary> public unsafe NetBuffer Write(float source) { uint val = *((uint *)&source); #if BIGENDIAN val = NetUtility.SwapByteOrder(val); #endif Write(val); return(this); }
/// <summary> /// Writes a 32 bit floating point value /// </summary> public void Write(float source) { // Use union to avoid BitConverter.GetBytes() which allocates memory on the heap SingleUIntUnion su; su.UIntValue = 0; // must initialize every member of the union to avoid warning su.SingleValue = source; #if BIGENDIAN // swap byte order su.UIntValue = NetUtility.SwapByteOrder(su.UIntValue); #endif Write(su.UIntValue); }