private float ConvertHexToFloat(string hex)//将32位16进制数转为浮点数
{
hex = hex.Replace(" ", "");//去除字符串中的空格
uint x = Convert.ToUInt32(hex, 16);//字符串转16进制32位⽆符号整数
return BitConverter.ToSingle(BitConverter.GetBytes(x), 0);//IEEE754 字节转换float
}
private string ConvertFloatToHex(float value)//将浮点数转为32位16进制字符串
{
byte[] bytes = BitConverter.GetBytes(value);
string s1 = BitConverter.ToString(bytes, 0);
string[] strs = s1.Split('-');
StringBuilder sb = new StringBuilder();
for (int i = strs.Length - 1; i >= 0; i--)
{
sb.Append(strs[i]);
}
return sb.ToString();
}
private static byte[] StringToHexByte(string hexString)//将字符串转换成16进制字节数组
{
//hexString = hexString.Replace(" ", "");
//if ((hexString.Length % 2) != 0)
// hexString += " ";
//Debug.Log(hexString);
byte[] returnBytes = new byte[hexString.Length / 2];
for (int i = 0; i < returnBytes.Length; i++)
returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
return returnBytes;
}
private string HexBytesToString(byte[] bytes)//将16进制字节数组转换成字符串
{
string[] strArr = receMes.Take(receMes.Length).Select(s => string.Format("{0:X2}", s)).ToArray();
return string.Join("", strArr);
}
汇总几个与硬件进行数据交互要用到的方法
最新推荐文章于 2024-08-06 17:54:59 发布