C#将十六进制字符串转float
时间: 2023-09-06 14:13:57 浏览: 140
16进制转换float
可以使用BitConverter类的静态方法GetBytes和ToSingle来将十六进制字符串转换为float类型。
具体实现代码如下:
```
string hexString = "3F800000"; // 十六进制字符串表示的float值1.0
byte[] bytes = Enumerable.Range(0, hexString.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hexString.Substring(x, 2), 16))
.ToArray();
float result = BitConverter.ToSingle(bytes, 0);
```
解释一下代码:
首先定义一个十六进制字符串表示的float值,例如1.0的十六进制表示为3F800000。
然后将十六进制字符串转换为byte数组,具体做法是将字符串按照每两个字符分割,转换为对应的byte值,最后将这些byte值组合成一个byte数组。
最后使用BitConverter.ToSingle方法将byte数组转换为float类型。注意,第二个参数表示byte数组的起始位置,一般为0即可。
执行完上述代码,result变量的值应该为1.0。
阅读全文