utility classes updated.

(BigEndian): read bigendian-packed integer packed into byte array.
(LittleEndian): added Pack methods.
This commit is contained in:
morkt 2015-04-14 10:30:23 +04:00
parent 0936c172cb
commit 9b4aa48e37

View File

@ -85,6 +85,19 @@ namespace GameRes.Utility
}
}
public static class BigEndian
{
public static uint ToUInt32 (byte[] value, int index)
{
return (uint)(value[index] << 24 | value[index+1] << 16 | value[index+2] << 8 | value[index+3]);
}
public static int ToInt32 (byte[] value, int index)
{
return (int)ToUInt32 (value, index);
}
}
public static class LittleEndian
{
public static ushort ToUInt16 (byte[] value, int index)
@ -116,6 +129,41 @@ namespace GameRes.Utility
{
return (long)ToUInt64 (value, index);
}
public static void Pack (ushort value, byte[] buf, int index)
{
buf[index] = (byte)(value);
buf[index+1] = (byte)(value >> 8);
}
public static void Pack (uint value, byte[] buf, int index)
{
buf[index] = (byte)(value);
buf[index+1] = (byte)(value >> 8);
buf[index+2] = (byte)(value >> 16);
buf[index+3] = (byte)(value >> 24);
}
public static void Pack (ulong value, byte[] buf, int index)
{
Pack ((uint)value, buf, index);
Pack ((uint)(value >> 32), buf, index+4);
}
public static void Pack (short value, byte[] buf, int index)
{
Pack ((ushort)value, buf, index);
}
public static void Pack (int value, byte[] buf, int index)
{
Pack ((uint)value, buf, index);
}
public static void Pack (long value, byte[] buf, int index)
{
Pack ((ulong)value, buf, index);
}
}
public interface ICheckSum