#include main() {int i,d,m,n; char s[8]; scanf("%d",&n); i=0; do{ m=n/8; d=n%8; s='0'+d; i++; n=m; } while(n!=0); for(i--;i>=0;i--) putchar(s); } //十进制转八进制十六进制方法类似 #includevoid main(){ int a; scanf("%d",&a); printf("%o,%x",a,a); getchar(); getchar();}参考资料:http://hi.baidu.com/camel520duck/blog/item/348ad3bf9018340d18d81f10.html本回答被提问者采纳#includevoid showbit(int n){
if(n>1){
showbit(n/2);
printf("");
}
printf("%d",n%2);}void showoct(int n){
if(n>7){
showoct(n/8);
printf("");
}
printf("%d",n%8);}void showhex(int n){
if(n>15){
showhex(n/16);
printf("");
}
printf("%d",n%16);}int main(){
int a;
printf("input a num:");
scanf("%d",&a);
showbit(a);
printf("\n");
showoct(a);
printf("\n");
showhex(a);
printf("\n");} |