Esempio n. 1
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);
        }
Esempio n. 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);
        }
Esempio n. 3
0
        public static byte[] ToBytes(this Int16 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);
        }