news 2026/4/23 20:48:35

进行四字节的浮点数转换互换(指针方法,而不是共用体方法)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
进行四字节的浮点数转换互换(指针方法,而不是共用体方法)

一、问题出现场景
产品使用的一家可燃气检测传感器,会传递给我一个已经是浮点数的四字节数据,但是我在编写程序时使用实际的浮点数数据

注:浓度值数据类型为浮点型,占4个字节;通讯时 先低(16位)后高(16位),高字节在前,低字节在后。(比如浮点数23.56,在内存中为41 BC 7A E1,通讯时传输顺序:7A E1 41 BC。)

二、进行四字节的浮点数转换
直接上代码:【直接可以得到浮点数】

#include <iostream>

float convertBytesToFloat(unsigned char* com_r) {
float sum0 = 0.0;
unsigned char* p0 = (unsigned char*)&sum0;

*p0 = com_r[1];
*(p0 + 1) = com_r[0];
*(p0 + 2) = com_r[3];
*(p0 + 3) = com_r[2];

return sum0;
}

int main() {
unsigned char com_r[10];
com_r[0] = 0x00;
com_r[1] = 0x00;
com_r[2] = 0x42;
com_r[3] = 0x78;

float result = convertBytesToFloat(com_r);

std::cout << "Result: " << result << std::endl;

return 0;
}
AI写代码
cpp
运行

三、将浮点数换成四字节数据
直接行代码:【注意数据传递顺序进行调整】

#include <iostream>
#include <cstdint>

int main() {
float value = 6.0;
uint32_t* floatPtr = reinterpret_cast<uint32_t*>(&value);
uint32_t floatValue = *floatPtr;

uint8_t bytes[4];
for (int i = 0; i < 4; i++) {
bytes[i] = (floatValue >> (8 * i)) & 0xFF;
}

std::cout << "Byte 1: " << std::hex << static_cast<int>(bytes[0]) << std::endl;
std::cout << "Byte 2: " << std::hex << static_cast<int>(bytes[1]) << std::endl;
std::cout << "Byte 3: " << std::hex << static_cast<int>(bytes[2]) << std::endl;
std::cout << "Byte 4: " << std::hex << static_cast<int>(bytes[3]) << std::endl;

return 0;
}
AI写代码
cpp
运行

关于浮点数的知识,大佬已经讲的很清楚,大家可以参考

IEEE754标准: 一 , 浮点数在内存中的存储方式 - 知乎 (zhihu.com)
https://zhuanlan.zhihu.com/p/343033661
————————————————
版权声明:本文为CSDN博主「纸上苍生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kingboj/article/details/135117025

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:40:52

如何用小红书API提升创作效率?数据管理与运营自动化解决方案

如何用小红书API提升创作效率&#xff1f;数据管理与运营自动化解决方案 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 当内容创作者还在手动统计粉丝增长曲线、逐个编辑笔…

作者头像 李华
网站建设 2026/4/23 17:44:32

高效全格式网页媒体提取工具:突破资源获取瓶颈的智能解决方案

高效全格式网页媒体提取工具&#xff1a;突破资源获取瓶颈的智能解决方案 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字内容爆炸的时代&#xff0c;网页媒体提取工具已成为内容创作者、研究人…

作者头像 李华
网站建设 2026/4/23 16:12:04

WAN2.2文生视频实测:用SDXL_Prompt风格轻松制作创意短视频

WAN2.2文生视频实测&#xff1a;用SDXL_Prompt风格轻松制作创意短视频 如今AI文生视频技术正从“能动起来”迈向“动得好看、动得精准、动得有风格”的新阶段。过去几个月&#xff0c;不少朋友反馈&#xff1a;想做个节日祝福短视频、产品概念动画或社交平台创意内容&#xff…

作者头像 李华
网站建设 2026/3/26 0:46:02

美胸-年美-造相Z-Turbo:电商海报生成实战案例分享

美胸-年美-造相Z-Turbo&#xff1a;电商海报生成实战案例分享 1. 为什么电商商家需要这款海报生成工具 你是否遇到过这样的场景&#xff1a;大促前夜&#xff0c;运营同事急匆匆发来消息&#xff1a;“明天上午十点要上新活动&#xff0c;主图和详情页海报现在就要&#xff0…

作者头像 李华
网站建设 2026/4/23 16:18:08

LightOnOCR-2-1B开源OCR企业应用:保险理赔单多语种OCR+风险点自动标记

LightOnOCR-2-1B开源OCR企业应用&#xff1a;保险理赔单多语种OCR风险点自动标记 1. 为什么保险行业需要真正好用的OCR 你有没有见过这样的场景&#xff1a;理赔专员每天要处理上百张扫描件&#xff0c;有中文保单、日文医疗报告、英文诊断书、德文费用清单……每张都得手动录…

作者头像 李华
网站建设 2026/4/23 14:47:25

Jimeng LoRA安全加固实践:本地化部署+无外网依赖+LoRA文件权限管控

Jimeng LoRA安全加固实践&#xff1a;本地化部署无外网依赖LoRA文件权限管控 1. 为什么需要一套“能管住”的LoRA测试系统&#xff1f; 你有没有遇到过这样的情况&#xff1a; 刚训完一个Jimeng LoRA新版本&#xff0c;兴冲冲想对比它和上一版的生成效果——结果发现得先关掉…

作者头像 李华