进制转换中pow()函数的问题
2016-11-16 23:02
344 查看
今天遇到一个进制转换的问题,使用不同的编译器产生了不同的结果。代码很简单,m进制转换为k进制。
input 78 8
在VC 6.0里面运行
output 116
Code::Blocks里面运行
output 115
通过分析是在pow(10,i)上面除了问题,double转int,但不清楚原因,难道是int向上取整?向下取整?
断点分析,发现确实是pow()问题:
在VC 6.0中;
运行到第二轮 i=2, j=pow(10,i); j的值是100
Code::Blocks中;
运行到第二轮 i=2, j=pow(10,i); j的值是99
原因尚不明白,暂且记下。
input 78 8
在VC 6.0里面运行
output 116
Code::Blocks里面运行
output 115
通过分析是在pow(10,i)上面除了问题,double转int,但不清楚原因,难道是int向上取整?向下取整?
断点分析,发现确实是pow()问题:
在VC 6.0中;
运行到第二轮 i=2, j=pow(10,i); j的值是100
Code::Blocks中;
运行到第二轮 i=2, j=pow(10,i); j的值是99
原因尚不明白,暂且记下。
#include<stdio.h> #include<math.h> /* m进制转换为k进制 */ void trans(int m,int k) { int n,j,i=1; double d; n=m%k; while((m=m/k)!=0) { j=pow(10,i); n+=(m%k)*j; i++; } printf("%d ",n); } int main() { int b,n; printf("please enter a number and a base:\n"); scanf("%d %d",&n,&b); trans(n,b); return 0; }
相关文章推荐
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何实现开平方的Pow函数
- gcc编译器下pow函数编译的问题
- JAVA问题总结之7--Pow、sin、sqrt、abs等常用数学函数调用
- C语言中关于pow()函数的问题
- 关于在Eclipse中无法使用pow()、fmod()函数的问题
- Linux下的C语言pow()函数引出的问题
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何实现开平方的Pow函数
- ACM内部函数--数学问题--任意进制转换
- C中关于sin(),cos(),pow()函数使用的一个问题
- C标准库pow函数精度问题。
- 关于C++中posix pthread线程函数在类中封装的问题
- 通过ES6中通过promise处理回调函数问题
- 利用Python的内嵌函数和递归研究汉诺塔问题
- DSP在CCS环境下因printf函数跑飞的问题
- 关于DLL找不到函数入口点的问题
- 进制转换问题(c++)
- 关于函数字符数组调用的问题(没有搞清指针的概念)
- Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
- 按如下函数原型用函数编程解决如下的日期转换问题(要求考虑闰年的问题): 输入某年某月某日,计算并输出它是这一年的第几天。 /* 函数功能: 对给定的某年某月某日,计算它是这一年的第几天 函数参数:
- [转载]求平方根sqrt()函数的底层算法效率问题