(Binary.Rotate): added ulong methods.

(Crc32.UpdateCrc): method made public.
This commit is contained in:
morkt 2016-01-15 11:50:13 +04:00
parent c9ab33addf
commit 410d40313e

View File

@ -114,6 +114,18 @@ namespace GameRes.Utility
return v << count | v >> (32-count); return v << count | v >> (32-count);
} }
public static ulong RotR (ulong v, int count)
{
count &= 0x3F;
return v >> count | v << (64-count);
}
public static ulong RotL (ulong v, int count)
{
count &= 0x3F;
return v << count | v >> (64-count);
}
public static byte RotByteR (byte v, int count) public static byte RotByteR (byte v, int count)
{ {
count &= 7; count &= 7;
@ -254,7 +266,7 @@ namespace GameRes.Utility
should be initialized to all 1's, and the transmitted value should be initialized to all 1's, and the transmitted value
is the 1's complement of the final running CRC (see the is the 1's complement of the final running CRC (see the
crc() routine below)). */ crc() routine below)). */
static uint UpdateCrc (uint crc, byte[] buf, int pos, int len) public static uint UpdateCrc (uint crc, byte[] buf, int pos, int len)
{ {
uint c = crc; uint c = crc;
for (int n = 0; n < len; n++) for (int n = 0; n < len; n++)