VC++十进制转二进制,八进制,十六进制。。快。。

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:22:18
#include <iostream.h>
#include <math.h>
double trans(int n,int b=8){
double m=0,z=0;
int t;
while(n>0){
t=n%b;
z=z+t*pow(10,m);
n=n/b;
m++;
}
return z;
}
void main(){
int n,a;
cin>>n>>a;
if(a!=2&&a!=8&&a!=16) cout<<"error!!"<<endl;
cout<<trans(n,a)<<endl;

}

运行的貌似正确,但是十六进制ABCDEF。。。不会。怎么加才能正确啊?我不需要再增加头文件。还有我只学到递推函数,其他的偶看不懂啦。。帮忙咯。。

if (a==16)
{
cout.setf(ios::hex);
cout<<n<<endl;
}

十六进制的不能这么用啊,得用字符串或者一个一个字符输出啊

这样的函数 C\c++标准库都给的有...平常不必自己写了..无意义
百度下.标准库里对应的函数.,...