问专家,C语言的数据类型自动转换是否是个耗时的过程?如 int ---> double

embee 2004-04-23 03:15:11
问专家,C语言的数据类型自动转换是否是个耗时的过程?如 int ---> double
...全文
1035 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
embee 2004-04-24
  • 打赏
  • 举报
回复
小弟现在做数值模拟,问题属超大规模,限于经费只能在PC上做(配置P43.06,2G内存,146GSISC硬盘)。为节约内存,处理更大规模的模型,想用不同数据类型存储数据,但又担心隐式转换耗费太多时间。我看有书上说,“在实际计算时,无论float,double,都是按double计算,结果再存为float或double”不知真的假的。其他隐式转换又如何呢。 可能有人叫我,改了程序试一下。但是程序太复杂,不是查找-替换那么简单的。请专家指点,我要心中有数才敢改啊。
wingfiring 2004-04-23
  • 打赏
  • 举报
回复
int到double也不会很费事吧?如果是高性能环境约束,那么再来考虑这个问题如何?
陈硕 2004-04-23
  • 打赏
  • 举报
回复
抱歉,我说错了,Intel 有 double -> int 的指令。
陈硕 2004-04-23
  • 打赏
  • 举报
回复
在x86上,int -> double 是一条指令,速度飞快,但是 double -> int 没有对应的指令,会慢很多。建议楼主实测一下。
ckc 2004-04-23
  • 打赏
  • 举报
回复
同意 linpr(公子愚)的说法
whongun 2004-04-23
  • 打赏
  • 举报
回复
学习...
我一直觉得这种类型转换跟运行期没什么关系
lsof 2004-04-23
  • 打赏
  • 举报
回复
晕倒,自动类型转换是语言层面实现的,哪会有调用函数那么复杂吗

mrubbish 2004-04-23
  • 打赏
  • 举报
回复
大约时间:1/100000毫秒!
ok?
yonyon 2004-04-23
  • 打赏
  • 举报
回复
学习
linpr 2004-04-23
  • 打赏
  • 举报
回复
对涉及到指针的类型转换来说,改变的只是编译时如何dereference,没有运行时损失。
对基本类型的算术运算来说,如果底层位模式不作变动,如从unsigned char到int,没有运行时损失;而位模式完全不一样的,如double和int,相互之间转换就涉及到一个调用函数转换,即多一个call指令
pwk 2004-04-23
  • 打赏
  • 举报
回复
一点是几多啊
cngdzhang 2004-04-23
  • 打赏
  • 举报
回复
那要看优化时是注重 效率 还是注重 代码长度 了
cngdzhang 2004-04-23
  • 打赏
  • 举报
回复
耗时不算多,但是相对于相同类型赋值是稍微多一点时间
EternalBlue 2004-04-23
  • 打赏
  • 举报
回复
to: cngdzhang()
如果真的是调用这样的函数,也应该是inline的吧。
EternalBlue 2004-04-23
  • 打赏
  • 举报
回复
这个应该不怎么耗时的吧。
比如int --> double,只是把int的数据作一点点操作然后把它当double类型的数据使用而已。
cngdzhang 2004-04-23
  • 打赏
  • 举报
回复 1
会的,隐式转换实际上是通过调用函数完成的

int i=10;
double d;

double change(int i)
{
return i*1.0;
}

则d=i;相当于是
d=change(i);
的来的

当double->int时是
进行截断取整
double d=1.5;
int i=d;
那么i=1

70,020

社区成员

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

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