예제 #1
0
 public static byte[] ToBytes(this UInt16 value, JDIConst.ByteOrder byteOrder = JDIConst.ByteOrder.Network)
 {
     byte[] bytes = new byte[2];
     switch (byteOrder)
     {
         case JDIConst.ByteOrder.LittleEndian:
             bytes[1] = (byte)((value >> 8) & 0xFF);
             bytes[0] = (byte)((value >> 0) & 0xFF);
             break;
         case JDIConst.ByteOrder.BigEndian:
         case JDIConst.ByteOrder.Network:
             bytes[0] = (byte)((value >> 8) & 0xFF);
             bytes[1] = (byte)((value >> 0) & 0xFF);
             break;
     }
     return bytes;
 }
예제 #2
0
		/// <summary>
		/// Outputs an Int16 value
		/// </summary>
		/// <param name="offset">Start index</param>
		/// <param name="byteOrder">Byte order</param>
		/// <returns>Int16 value</returns>
		public static Int16 ToInt16(this byte[] array, int offset, JDIConst.ByteOrder byteOrder = JDIConst.ByteOrder.Network)
		{
			Int16 value = 0;
			switch (byteOrder)
			{
				case JDIConst.ByteOrder.LittleEndian:
					value = (Int16)((array[offset + 1] << 8) + (array[offset]));
					break;
				case JDIConst.ByteOrder.BigEndian:
				case JDIConst.ByteOrder.Network:
					value = (Int16)((array[offset] << 8) + (array[offset + 1]));
					break;
			}
			return value;
		}
예제 #3
0
		/// <summary>
		/// Outputs an UInt64 value
		/// </summary>
		/// <param name="offset">Start index</param>
		/// <param name="byteOrder">Byte order</param>
		/// <returns>UInt64 value</returns>
		public static UInt64 ToUInt64(this byte[] array, int offset, JDIConst.ByteOrder byteOrder = JDIConst.ByteOrder.Network)
		{
			UInt64 value = 0;
			switch (byteOrder)
			{
				case JDIConst.ByteOrder.LittleEndian:
					value = (UInt64)((array[offset + 7] << 56) + (array[offset + 6] << 48) + (array[offset + 5] << 40) + (array[offset + 4] << 32) + (array[offset + 3] << 24) + (array[offset + 2] << 16) + (array[offset + 1] << 8) + (array[offset]));
					break;
				case JDIConst.ByteOrder.BigEndian:
				case JDIConst.ByteOrder.Network:
					value = (UInt64)((array[offset] << 56) + (array[offset + 1] << 48) + (array[offset + 2] << 40) + (array[offset + 3] << 32) + (array[offset + 4] << 24) + (array[offset + 5] << 16) + (array[offset + 6] << 8) + (array[offset + 7]));
					break;
			}
			return value;
		}