public static uint ToUInt32(string hexString, int offset)
{
const int maxLength = 8;
if (hexString == null) throw new ArgumentNullException("hexString");
if (offset < 0) throw new ArgumentOutOfRangeException("offset");
if (offset + 1 > hexString.Length) throw new ArgumentOutOfRangeException("offset");
var end = Math.Min(hexString.Length, offset + maxLength);
var result = 0u;
for (var i = 0; offset < end; offset++, i++)
{
var hexChar = hexString[offset];
var hexNum = ToHexNum(hexChar);
if (i % 2 == 1)
result |= hexNum << (i - 1) * 4;
else
result |= hexNum << (i + 1) * 4;
}
return result;
}
public static ushort ToUInt16(char[] hexBuffer, int offset)