如何将Double转化为四个型Short 啊 急

ply168 2006-03-15 05:56:58
比如说有个Double型的数据 如何将他转化为Short型了??
下面的方法可行吗?
void DbToSh(double *doubledata, short *shortdata)
{

union DbToSh{
double DbVar;
short ShVar[4];
};
union DbToSh Db2Sh;

Db2Sh.DbVar = *doubledata;
memcpy(shortdata,Db2Sh.ShVar,sizeof(Db2Sh.ShVar));
}
...全文
313 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mp6 2006-03-15
  • 打赏
  • 举报
回复
问题是搂主并没有要求要转化成什么样的short,只是要求将double转化为四个short,所以我觉得yuanchuang(元创) 符合要求。
tb01412 2006-03-15
  • 打赏
  • 举报
回复
要知道double型的存储方式与int型的不一样,你可以直接取址,然后赋值,但是与你所期望的结果是不一样的!!!!!
你需要先了解double型的存储方式,再来转换!!!!!!
yuanchuang 2006-03-15
  • 打赏
  • 举报
回复
double d;
short *p = (short *)&d;
这样p[0],p[1],p[2],p[3]
不时四个short型吗?
tonyzhengjq 2006-03-15
  • 打赏
  • 举报
回复
试试移位取可以吗?
OpenHero 2006-03-15
  • 打赏
  • 举报
回复
一段一段的取
trackant 2006-03-15
  • 打赏
  • 举报
回复
不行,典型的实现一个double占的内存空间还没有4个float大呢。强制类型转换可以吧

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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