前言
10进制转换为其他进制:转换方法"除k取余法","除k"中这个k就是我们需要转换成的进制,比如要转换成2进制,这个K就是2,要转换成16进制,这个K就是16。"取余"中的余就是在这个除法过程中的余数(直到商为0)。
以185转成2进制为例,转换过程见上图,所以转换结果是:185 = 10111001(2进制),注意余数是从下往上取,不要搞反了。
代码实现
/*进制转换 */
#include <stdio.h>
int main(void)
{
int num,base;
int arr[128]; //定义一个足够大的数组存放余数
int i = 0;
printf("请输入待转换10进制数字:");
scanf("%d",&num);
printf("请输入需要转换的进制:");
scanf("%d",&base);
for(i=0;num!=0;i++)
{
arr[i] = num % base;
num = num / base;
}
for(i--;i>=0;i--) //从下到上取余数; 第一个i--是为来抵消最后一次i++
{
if(arr[i]>=10) //余数大于10的情况,转换为A B C D E F
{
printf("%c",arr[i]-10+'A');
}
else
{
printf("%d",arr[i]);
}
}
printf("\n");
return 0;
}
~