从double到float的强制类型转换
发布日期:2021-05-06 22:01:49 浏览次数:10 分类:技术文章

本文共 404 字,大约阅读时间需要 1 分钟。

#include 
union FLOATUN{ unsigned int a; float b;};int main(){ FLOATUN fun; fun.b = 12.34; printf("c:%x\n",fun.a); double a = 12.34; fun.b = (float) a; printf("c:%x\n",fun.a); double c = 12.34; float *p; p = (float *) &c; printf("float c:%f\n",*p);}

输出结果

c:414570a4c:414570a4float c:584860314976236483507101602781593600.000000

只要不超出范围,double可以强转float

但用float指针会出错,因为float指针相当于只取了64位变量的32位

上一篇:C++ 任意数据类型转为16进制输出
下一篇:Ubuntu下的多线程编程

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月15日 06时54分33秒