十进制转任意进制一般都是用除基取余法,比如说102转8进制,
102除以8,商12,余6
12除以8,商1,余4
1除以8,商0,余1
商为0的时候即转换完成,将余数逆序连接起来就是结果,即10进制的102转8进制为146
将上述过程转为代码就是
#include <stdio.h>
int main()
{
int number = 102, i=0, div, rem;
int system = 8;//8进制
char s[50];
while (number) //除基取余法
{
div = number / system; //商
rem = number % system; //余
s[i++] = rem <= 9 ? rem + '0' : rem - 10 + 'A';
number = div; //上次的商赋给number
}
for (--i; i >= 0; i--)
printf("%c", s[i]);
printf("\n");
getchar();
return 0;
}
温馨提示:答案为网友推荐,仅供参考