#include<stdio.h> #include<string.h> voiditob(int n,char s[],int b); voidReverse(char R[]); intmain() { int n = 3770; char s[100] = {0}; int b = 16; itob(n,s,b); return0; } voiditob(int n,char s[],int b) { int i = 0; for (i=0; n != 0; i++) { int j = n % b; if (j<10)//小于十进制的时候,用数字就够了 { s[i] = j+'0'; n = n / b; } elseif (j<16)//适用于16进制时,还要用到字母 { s[i] = j+'a'-10; n = n / b; } } Reverse(s);//翻转字符串 } voidReverse(char R[]) { int c,i,j; for (i=0,j=strlen(R)-1; i<j; i++,j--) { c = R[i]; R[i] = R[j]; R[j] = c; } }