本文介绍了如何将十六进制字符串转换为浮点值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个十六进制字符串="41BD9A69",我需要将此十六进制字符串转换为ASCII十六进制IEEE Float.
我的意思是我们如何以编程方式在C ++中或使用库将此十六进制字符串转换为等效的float值23.700396.
十六进制字符串="41BD9A69" = 23.700396
I have a Hex String = "41BD9A69", I need to convert this hex string into ASCII Hex IEEE Float.
I meant how do we convert this hex string into equivalent float value of 23.700396 programatically in C++ or using library.
Hex String = "41BD9A69" = 23.700396
推荐答案
#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;
union ulf
{
unsigned long ul;
float f;
};
int main()
{
ulf u;
string str = "41BD9A69";
stringstream ss(str);
ss >> hex >> u.ul;
float f = u.f;
cout << f << endl;
}
float f;
long l;
l = strtol(HEXString, (char**)NULL, 16);
f = (float)l;
printf("%f", f);
请参阅下面的详细说明
在c中将十六进制转换为浮点数,反之亦然 [ ^ ]
See below for detail explanation
Convert a hexadecimal to a float and viceversa in c[^]
这篇关于如何将十六进制字符串转换为浮点值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!