完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我通过我的通信接口读取一个值。这个变量是char类型。我把这个值移到int中,我需要浮点中的值。我试图用下面的代码行将其转换为float:tempcal=(float)i;这里tempcal是一个float,i是一个被转换为float的int。为了测试,我通过通信接口发送了值21。我希望在执行代码行b之后,tempcal值就是这个值。但是tempcal的输出是2.9E-44。我已经更新了MPLab软件,编译器,并且尝试了几种不同的方法来完成这个任务,但没有成功。任何帮助都是好的。谢谢!
|
|
相关推荐
8个回答
|
|
这个代码看起来像什么?你使用的是什么CPU?
|
|
|
|
嗨,不要弄乱铸造操作!强制转换不是转换操作符。强制转换是向编译器请求将变量视为强制转换类型,而不是声明的类型,然后将其转换或用作强制转换告诉。要执行您最初要求的操作:当变量被声明并与正确类型一起使用时,编译器将k现在根据需要执行转换。2.9E-44是存储为:0x000015;又名:00000021的值的浮点解释。如果您确实通过不知道数据传输类型的通信接口传输了实际的二进制浮点数据,那么可以在原始问题中使用这个技巧。推测。但是这需要通信接口能够在没有解释或翻译的情况下传输所有二进制值。
|
|
|
|
不工作的代码行实际上就是我上面发布的那行。但是我发现随着MPLab的更新,编译器设置错误,文件不再突然被找到,我的代码也完全被破坏了……当他们发布MPLab更新时,我总是遇到这种情况。旧版本刚刚开始工作奇怪,这迫使我更新…通常,一旦更新完成,同样的代码就可以工作了。只是现在所有的设置都消失了,文件不再链接,所以我必须重新设置所有的东西…
|
|
|
|
我已经试过代码了,但没用。但我确实有一些问题的编程环境更新,所以我会先修复现在…
|
|
|
|
作为一个侧面说明,我一直在思考MysIsPoST,它很有趣,但…我真不敢相信编译器真的会这么做!IMO说他会发生这样的事情:(*(INT*)和TAMCAL)=(*(浮点*)和AMI;I);
|
|
|
|
我已经修复了所有文件的依赖关系和链接…现在它工作了。我真的不喜欢更新…我从来没有安装过一个,然后马上工作。所以我想这个问题对我来说是固定的。
|
|
|
|
嗨,我得到21。每一次,这里有一个示例程序,有4个不同的选择:问候,Mysil
|
|
|
|
当然是。f=i和f=(浮点)i之间没有差别;
|
|
|
|
只有小组成员才能发言,加入小组>>
5188 浏览 9 评论
2009 浏览 8 评论
1933 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3181 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2232 浏览 5 评论
742浏览 1评论
629浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
512浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
641浏览 0评论
538浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 09:24 , Processed in 1.507998 second(s), Total 89, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号