c++中16进制字符串转float的2种方法

C/C++ 32位浮点型float转16进制并用字符串输出,简洁明了 C/C++ 32位浮点型float转16进制并用字符串输出 C 语言中,指针地址就是IEEE 754 16进制编码,C可以直接调用就不用写函数计算了,C++也是一样的。 联合体共用一段内存,可以用一个包含float和char[4]的联合体,给float赋值,然后打印4个char就行; 提供一个在线转换工具:在线进制转换(支持在2~36进制之间进行任意转换) 代码 32位浮点型float(字符串形式)转16进制并用字符串输出 #include <stdio.h> #include <s 阅读详情

c++中16进制字符串转float的2种方法


菜鸟学习中遇到这样的情况:传感器发送过来的数据为4个16进制,接收到后保存为string类型。如收到16进制为 44556677,则相应的string为 “DUfw”,需要对string按照IEE754做转换变成 853.6010131835938。学长提示用union转换。历经挫折,才写出来。

  1. 第一种利用union强制转换 。代码如下
string content = "DUfv";
float hexstrtoflo1()
{
	union lhex
	{
		unsigned char d[4];
		float f;
	}fdata;
	for (int i = 0; i < content.size(); i++)
	{
		fdata.d[i] = content[3-i];

	}
	return fdata.f;
}
	

fdata.f即为所需的float数据。

  1. 利用c++11的特性:流操作
    参考:conversion - ASCII hex to float in c++
string content = "DUfv";
float hexstrtoflo2()
{
	string str;
	for (int i = 0; i < content.size(); i++)
	{
		char c[9] = { 0 };
		sprintf_s(c, "%02X", unsigned char(content[i]));
		str += c;
	}
	cout << str << endl;
	unsigned int x;
	std::stringstream ss;
	ss << std::hex << str;
	ss >> x;
	return reinterpret_cast<float&>(x);
}

推荐一个很好用的在线进制转换

十六进制 转浮点值C++ 算法 阅读详情

相关推荐

数据解析-四字节十六进制数转化为浮点数

一、 数据接收并整合 在数据接收时,一些信息可能是用好几个字符来表示,那么需要用一个变量把这些字符整合起来。 下面展示一些 内联代码片。 // A code block uint32_t buffer; var foo = 'bar'; // An highlighted block for(int m=0;m<=Num-1;m++) { buffer=DataBuffer[X]|DataBuffer[X+1]<<8|DataBuffer[X+2]<<16|Da

weixin_54888859的博客 4339

(从PLC)读取16进制数据,转换为10进制并写入txt文本

读取PLC中编码器测得的速度也要费一番功夫

weixin_42292586的博客 5829

sentinel滑动时间窗口算法学习

滑动时间窗口 先不说sentinel的算法实现,先说什么是滑动时间窗口, 我们在进行限流的时候,比如通过QPS进行限流,那假如我们以秒为单位,举个例子: 我设置了限流规则,qps是10 如果不使用滑动窗口算法,在统计qps的时候,就有可能会有问题,比如: 在0 - 500ms中的请求数是0,但是在500ms - 1000 ms的请求数是10;在1000ms - 1500ms 之间又进来了5个请求,此时只判断了1000ms - 2000 ms之间的请求数 因为没有把1S进行拆分多个窗口,所以在1000ms之后

小小少年的博客 3979

R语言孟德尔随机化环境搭建:手把手教你搞定gwasvcf、gwasglue等包的安装报错(附本地安装包)

本文详细介绍了R语言中孟德尔随机化环境搭建的全流程,重点解决gwasvcf、gwasglue等包的安装报错问题。从依赖关系解析到GitHub访问配置,再到离线安装方案,手把手教你搭建完整的分析环境,特别适合生物信息学新手快速上手。

weixin_29093017的博客 215

Aspice的理解

ASPICE 是由汽车行业的主要公司和组织合作开发的,包括德国汽车工业联合会(VDA)和国际汽车工作组(Automotive SIG)。其目标是通过标准化的软件开发流程,提高汽车电子系统的软件质量和可靠性。

hkj8808的博客 2015

PCL点云库入门(第1讲)——PCL库简介和安装(Win10/11+VS2019+PCL 1.12.0)

PCL,全称为,即点云库,是一个专注于2D/3D图像和点云处理的大型开源项目。该项目最初由斯坦福大学的杰出计算机视觉专家Radu博士及其团队开发和维护,经过十余年的发展,目前(2024年12月)已更新至1.14.1版本。PCL点云库集成了众多尖端的点云处理算法,这些算法不仅包括基础的滤波、特征估计、表面重建、配准、模型拟合和分割等,还涵盖了更高级的功能,如点云数据的语义理解、场景解析以及动态环境下的实时处理。这些算法能够对含有噪声的点云数据进行有效过滤,去除异常值;

qq_36812406的博客 1万+

点云统计滤波 (python详细过程版)【2025最新版】

统计滤波python详细过程版,博客长期更新,本文最近更新时间为:2025年1月12日。

点云侠的博客 5636

RK3568平台(音频篇)麦克风PDM接口录音

PDM = Pulse Density Modulation是一种用数字信号表示模拟信号的调制方法。PDM则使用远高于PCM采样率的时钟采样调制模拟分量,只有1位输出,要么为0,要么为1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。相比PDM一连串的0和1,PCM的量化结果更为直观简单。以PDM方式作为模数转换的接收端,需要用到抽取滤波器(Decimation Filter),将密密麻麻的0和1代表的密度分量转换为幅值分量,而PCM方式得到的已经是幅值分量了。

weixin_49303682的博客 5194

MicroCap声学仿真介绍(二)-创建声学仿真元件

声学库里包含孔、管、障板辐射器等器件,我们只需要按照仿真的需求,将声学库里的器件排列好,输入参数,用线连接起来即可。这里我们用D指代孔的直径,L指代孔的长度,N代表孔的数量。26.在弹出的界面中做如下设置:需要先在右面的选框里找到对应的项,然后右键Add Part,再之后就如下设置。3.在弹出的界面中,选择“Macro file(.mac)”,并点击右上角的“OK”下面就以声学仿真中常见的“孔”来做示例,跟大家一块演示一下宏程序的新建。10.在上图中“Value”中填入“R”,然后点击左边的“OK”按钮;

山无忧的博客 2197

西安交通大学软件学院——分布式系统练习题(综合题)

摘要:本文探讨了分布式系统的核心特性与关键问题。首先阐述了分布式系统的8种透明性特性,包括访问、定位、迁移等。然后通过具体案例分析了分布式事务的回滚机制、域名解析的迭代与递归过程、不同分布式系统的异同比较。重点讨论了RPC通信中客户端/服务器崩溃的处理方法,包括消灭、再生和到期三种策略。最后介绍了Lamport时间戳算法在进程通信中的应用及问题解决方案。全文涵盖了分布式系统设计中的透明性、可靠性、一致性等核心问题。

qq_73044452的博客 204

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

下一篇: 从0开始的Gitlab-CICD部署过程
击空明兮溯流光
博客等级 码龄7年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值