再论 ”用pow求整数幂的办法“

asmst 2008-03-17 03:30:58
在bbplayers的帖子《用pow求整数幂的办法》,地址:
http://topic.csdn.net/u/20080306/23/7568cab9-554f-42e9-baa1-3f206f41b1b0.html

虽然我们讨论了这么多,但是我认为仍然没有讨论出真正的原因,我们在上面讨论的只是可能,但是却与下列事实不相吻合:(下列事实是在windows XP下用dev-cpp4.9.9.2编译运行时出现的,intel CPU)
1. 5^3,甚至5^2就会出问题,但是6^3就不会出问题,这是为什么?
2. 使用powf(float)或者powl(long double)结果都是正确的,为何单单只有pow出错?
3. 写另外一个函数,仅仅调用pow函数,如果使用一个double型变量z,使z=pow(x,y) , return z就不会出错,但是直接return pow(x,y)就会出错,为什么?
4. 将pow(x,y)的结果直接用16进制显示出来,再按照double的格式进行解释,发现它就是精确的125,并并没有任何近似,这又是为什么?

欢迎大家热烈讨论!
...全文
175 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,373

社区成员

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

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