本文介绍了如何将十六进制字符串转换为浮点值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个十六进制字符串="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[^]


这篇关于如何将十六进制字符串转换为浮点值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-26 00:27