在DSP上做数据处理遇到,浮点型存储格式,转换成十进制的浮点型参与运算。
最终通过用union与struct,问题解决了。对于这一类问题:位操作。其实每个平台的库代码里有现成的例子。那就是每个平台的库中都有寄存器的定义。就是用union与struct,即可解决。
typedef union { float f_val; struct { unsigned long datatail: 23; unsigned long exponent : 8; unsigned long sign : 1; } bits;} myfloat;
在处理函数中,做赋值即可:
val.bits.sign = data_sign; val.bits.exponent = data_exp; val.bits.datatail= data_tail; fReceive = val.f_val; //返回 fReceive 是float型 return fReceive;
审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
我最近在用ADS1282,采集到的数据传到PC上应该怎么转为浮点数?比如说通过串口调试助手收到一个采样点的数据为 FF FF 9D 17,它的真实浮点数是多少呢?我知道ADC是以补码
发表于 12-13 06:23
TLV320AIC3106 音频芯片怎么发送、接收浮点数呢?是把浮点数转成整数吗?如果是该怎么转呢?
经AD采样后得到的是整数,又该怎么转换成原始的浮点数呢?
发表于 11-05 07:13
与下位机数据交流及通讯时,经常有浮点数与十六进制字符串相互转化的需求,经过两天总结,找到了最简洁的相互转化的方法,萌新欢迎大佬指正,文件也附上。*附件:HEX字符串与浮点数
发表于 10-21 19:51
十进制数据转十六进制字符_转ASCII码
发表于 09-18 10:17
•0次下载
1、芯片:STM32F103C8T62、环境:STM32CubeIDE3、问题:printf浮点数,浮点数数值丢失如 float A=25.6666;float B=24.7777;实际打印
发表于 06-03 07:07
电子发烧友网站提供《十六进制逆变器HC04数据表.pdf》资料免费下载
发表于 05-28 10:02
•0次下载
电子发烧友网站提供《十六进制逆变器数据表.pdf》资料免费下载
发表于 05-23 09:45
•0次下载
电子发烧友网站提供《CMOS十六进制缓冲器/转换器CD4009UB CD4010B TYPES 数据表.pdf》资料免费下载
发表于 05-20 10:30
•0次下载
电子发烧友网站提供《十六进制驱动器数据表.pdf》资料免费下载
发表于 05-17 10:07
•0次下载
电子发烧友网站提供《十六进制反转驱动器数据表 .pdf》资料免费下载
发表于 05-14 10:48
•0次下载
电子发烧友网站提供《带CLEAR的十六进制/四进制D型触发器数据表.pdf》资料免费下载
发表于 05-13 09:34
•0次下载
电子发烧友网站提供《带CLEAR的十六进制/四进制D型触发器数据表.pdf》资料免费下载
发表于 05-08 10:55
•0次下载
一、简介1、常见的浮点数表示方式是IEEE754标准,它规定了浮点数的存储格式和运算规则,这个标准定义了两种浮点数表示:单精度和双精度。2、任何一个浮点数的二
发表于 03-18 08:09
•8602次阅读
实际上,计算机本身是不需要十六进制的,计算机只需要二进制,需要十六进制的是人。
发表于 02-25 11:47
•1122次阅读
Modbus是一种通信协议,常用于工业自动化系统中的设备之间的通信。它支持多种数据类型,包括整数、浮点数、字符串等。浮点数在工业领域中广泛应用,因此了解如何读取和处理Modbus浮点数
发表于 12-28 14:38
•6173次阅读
评论