uint 32转 float
public float tofloat(string s)
{
MatchCollection matches = Regex.Matches(s, @"[0-9A-Fa-f]{2}");
byte[] bytes = new byte[matches.Count];
for (int i = 0; i < bytes.Length; i++)
bytes[i] = byte.Parse(matches[i].Value,System.Globalization.NumberStyles.AllowHexSpecifier);
float m = BitConverter.ToSingle(bytes, 0);
return m;
}
C0E84E4B 结果为 1.356E+07
这是低位在前,如果是高位在前就改为 bytes[bytes.Length-1-i] 即可
float 转 uint32
public string floattostring(float fy)
{
byte[] bytes = BitConverter.GetBytes(fy);
string data = BitConverter.ToString(bytes);
return (bytes[3].ToString("X2") + bytes[2].ToString("X2") + bytes[1].ToString("X2") + bytes[0].ToString("X2"));
}
13560000.0 结果为 4B4EE8C0 (高位在前)