存储类型强制转化 问

bruceteen 2003-07-02 11:17:52
1。比如把float:1.401298E-43换成int类型,我是这样写的:
float f = 1.401298E-43f;
int i = *(int*)(&f); // i这时应该等于100
也可以
union Flt2Int
{
float Flt;
int Int;
}
Flt2Int a;
a.Flt = 1.401298E-43f;
int i = a.Int; // i这时应该等于100

有没有更好的办法?

2。有会VB的吗,VB中又该怎么搞?
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bruceteen 2003-07-02
  • 打赏
  • 举报
回复
to XYBZ(星云不醉):我需要同size的任意类型之间的转化,能不能告诉我VB中怎样实现?最近我要写个VBA小片断,才发现这些语言太烂(与C/C++相比)。
XYBZ 2003-07-02
  • 打赏
  • 举报
回复

这问题是只限于float和int之间吗?还是需要同size的任意类型之间?
不过这么做没有太大意义吧?
liao2001 2003-07-02
  • 打赏
  • 举报
回复
to 小鱼:你去琢磨下float在内存中的存放格式或许就明白了
yu1928 2003-07-02
  • 打赏
  • 举报
回复
谁能解释一下楼主的结果为什么会是100,我不懂!(初学者)
bruceteen 2003-07-02
  • 打赏
  • 举报
回复
to sinsky(十方):int i=(int)f则i==0而不是100
sinsky 2003-07-02
  • 打赏
  • 举报
回复
int i = (int)f;
这样不就行了?
bruceteen 2003-07-02
  • 打赏
  • 举报
回复
有人会VB中的做法吗?
simouse 2003-07-02
  • 打赏
  • 举报
回复
float f = 1.401298E-43f;
int i =f;

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧