double型与float型之间的相互转换问题 [问题點数:10分结帖人bjlny]
-
单片机的C环境和普通桌面和服务器的C环境有着很大的区别觉得还是看相關的手册比较把稳
-
mlee79兄给出了代码,但是里边也存在问题:
最重要的是keil里边不支持double类型所有的double类型都是按照float类型进行存放的,所以不能定義double类型那是没有意义的。
不要考虑定义double类型因为如果可以的话,我就不存在这个问题直接定义公用体就可以了。
-
尽管在ANSI C中情况不再洳此但最初浮点数常量的精度都是double型的,所有表达式中float变量总被自动转换成double这样做的理由从未公诸于众,但它与PDP-11中浮点数的硬件表示方式有关首先,在PDP-11和VAX中从float转换成double的代价非常小,只要在后面增加一个每位均为0的字即可如果要转换回来,去掉第二个字就可以了其次,要知道在某些PDP-11的浮点数硬件表示形式中有一个位运算模式位(mod bit)你可以只进行float的运算,也可以只进行double的运算但如果想在这两种方式間切换,就必须修改这个位来改变运算模式
-
我是按照IEEE754标准实现转换,中间需要计算double型指数位底数不足部分填充0。
另外发现KEIL是大端模式VC6.0是小端模式。
-
mllee79兄看来也是对这个很熟悉的,发的还有代码并且一直积极参与讨论,多谢
匿名用户不能发表回复!
}