public static UInt16 WORDtoU16(string s)
{
if (String.IsNullOrWhiteSpace(s) || s.Length > 4)
{
throw new Exception("input string error");
}
return Convert.ToUInt16(s, 16);
}
public static Int16 WORDtoS16(string s)
{
if (String.IsNullOrWhiteSpace(s) || s.Length > 4)
{
throw new Exception("input string error");
}
return Convert.ToInt16(s, 16);
}
public static UInt32 DWORDtoU32(string low, string high)
{
if (String.IsNullOrWhiteSpace(low) | String.IsNullOrWhiteSpace(high))
{
throw new Exception("input string error");
}
if (low.Length < 4)
{
low = low.PadLeft(4, '0');
}
if (high.Length < 4)
{
high = high.PadLeft(4, '0');
}
string s = high + low;
return Convert.ToUInt32(s, 16);
}
public static UInt32 DWORDtoU32(string str)
{
if (String.IsNullOrWhiteSpace(str))
{
throw new Exception("input string error");
}
string low = str.Substring(0, 4);
string high = str.Substring(4, 4);
string s = high + low;
return Convert.ToUInt32(s, 16);
}
public static Int32 DWORDtoS32(string low, string high)
{
if (String.IsNullOrWhiteSpace(low) | String.IsNullOrWhiteSpace(high))
{
throw new Exception("input string error");
}
if (low.Length < 4)
{
low = low.PadLeft(4, '0');
}
if (high.Length < 4)
{
high = high.PadLeft(4, '0');
}
string s = high + low;
return Convert.ToInt32(s, 16);
}
public static Int32 DWORDtoS32(string str)
{
if (String.IsNullOrWhiteSpace(str))
{
throw new Exception("input string error");
}
string low = str.Substring(0, 4);
string high = str.Substring(4, 4);
string s = high + low;
return Convert.ToInt32(s, 16);
}
public static Single DWORDtoF(string low, string high)
{
if (String.IsNullOrWhiteSpace(low) | String.IsNullOrWhiteSpace(high))
{
throw new Exception("input string error");
}
if (low.Length < 4)
{
low = low.PadLeft(4, '0');
}
if (high.Length < 4)
{
high = high.PadLeft(4, '0');
}
string s = high + low;
uint num = uint.Parse(s, System.Globalization.NumberStyles.AllowHexSpecifier);
byte[] floatVals = BitConverter.GetBytes(num);
return BitConverter.ToSingle(floatVals, 0);
}
public static Single DWORDtoF(string str)
{
if (String.IsNullOrWhiteSpace(str))
{
throw new Exception("input string error");
}
string low = str.Substring(0, 4);
string high = str.Substring(4, 4);
return DWORDtoF(low, high);
}
public static String U16toWORD(UInt16 u16)
{
return u16.ToString("X4");
}
public static String S16toWORD(Int16 s16)
{
return s16.ToString("X4");
}
public static String U32toDWORD(UInt32 u32)
{
string str = u32.ToString("X8");
string high = str.Substring(0, 4);
string low = str.Substring(4, 4);
return low + high;
}
public static String S32toDWORD(Int32 s32)
{
string str = s32.ToString("X8");
string high = str.Substring(0, 4);
string low = str.Substring(4, 4);
return low + high;
}
public static String FtoDWORD(Single f)
{
byte[] bytes = BitConverter.GetBytes(f);
return bytes[1].ToString("X2") + bytes[0].ToString("X2") +
bytes[3].ToString("X2") + bytes[2].ToString("X2");
}