C语言中浮点型数转化为整型数的陷阱

编程入门 行业动态 更新时间:2024-10-26 01:27:01

C语言中<a href=https://www.elefans.com/category/jswz/34/1739054.html style=浮点型数转化为整型数的陷阱"/>

C语言中浮点型数转化为整型数的陷阱

最近做嵌入式项目,把一段老代码一直到智能手机平台之后发现了意想不到的bug。

简单来说就是一个负的FLOAT强转为WORD型会变成0,比如

FLOAT f = -1.0;

WORD w = f;

w会变成0,而不是期待的0xffff(65535)。


于是我在PC上用devc++(win版gcc)和linux版gcc都试了一下,发现均能得到0xffff结果。

反汇编后发现它们使用了x87 PFU的FISTP指令,而这个结果其实是由这个指令给出的。

但遗憾的是在智能手机平台上同样是gcc却得不到0xffff。


由于环境的问题暂时没办法反汇编

更多推荐

C语言中浮点型数转化为整型数的陷阱

本文发布于:2024-02-08 20:50:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1674899.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:浮点   转化为   陷阱   整型   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!