#include <iostream> #include <cmath> #include <stdio.h> using namespace std; int main() { int a[100],i,m=0,n,b[100],c[100],z; cout<<"请输入长整数的位数:"; cin>>a[0]; cout<<"从高位到低位分别输入长整数的数字,每位以空格间隔:"; for(i=a[0];i>=1;i--) cin>>a[i]; for(i=1;i<=a[0];i++) m=m+a[i]*pow(10,i-1); z=m; for(i=0;i<100;i++) { if(m%16<=9) b[i]=m%16; else { b[i]='A'+(m%16-10); //itoa(b[i],b[i],10); //b[i]='A'+(m%16-10); } m=m/16; //cout<<m; if(m==0) break; } cout<<"十六进制输出:"; for(n=i;n>=0;n--) { if(n==i) { if(b[n]>=65&&b[n]<=70) printf("0x"),printf("%c",b[n]); else cout<<"0x"<<b[n]; } else { if(b[n]>=65&&b[n]<=70) printf("%c",b[n]); else cout<<b[n]; } } cout<<endl; m=z; for(i=0;i<100;i++) { c[i]=m%8; m=m/8; if(m==0) break; } cout<<"八进制输出:"; for(n=i;n>=0;n--) { cout<<c[n];} cout<<endl; return 0; } 十六进制的时候其实可以可以用数组!我的方法太纠结了! 天! 8、对于题7 描述的10 进制长整数,要求: (1) 转换成16 进制数输出。 (2) 转换成8 进制数输出。