浮点数与十六进制数如何互相转换
在C#中,上位机将有发送的浮点数f转换为16进制数
float f = 1.2f;
string s = BitConverter.ToString(BitConverter.GetBytes(f)).Replace( "- ", " ");
在C#中,下位机返回的16进制浮点数,先去除数据“FF FF FF FF”中的空格,
16进制字符串转16进制数组再按2个字符一截取的转换为十进Byte数组后用BitConverter.ToSingle()方法将数据转换为f1,fi.ToString()转换字符串。
//s = s.Replace( " ", " ");//如果中间有空格
byte[] arr = new byte[s.Length / 2];
for (int i = 0; i < s.Length / 2; i++)
{
arr[i] = Convert.ToByte(s.Substring(i * 2, 2), 16);
}
float f1 = BitConverter.ToSingle(arr, 0);
Text = f1.ToString();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论