十进制转换为任意进制
可以采用除基取余法将十进制整数转换为B进制整数:
将十进制整数除以B,得到商和余数,余数对应为B进制数低位的值;
继续让商再除以B,得到商和余数,。。。。。。
重复此操作,直到商为0.
如此得到的一系列余数就是相应B进制数的各位数字,
先得到的是低位,后得到的是高位。
代码实现如下:
#include "stdio.h"
void DecToN(long num,int B)
{
int a[100] ={0};
int count=0;
while(num>0)
{
a[count++]=num%B; //保存余数
num=num/B;
}
for(int i = count - 1; i >=0; i--) //输出
{
if(a[i]>=10)//十六进制要特殊处理
{
printf("%c",'A'+a[i]-10);
}
else
{
printf("%d",a[i]); }
}
printf(" ");
}
int main(int argc, char* argv[])
{
long num =206;
int B = 16;
DecToN(num,B);
return 0;
}