在开始学习C语言时,不得不掌握基础的机制转换,那么如何实现十进制到二进制或者十进制到十六进制,甚至任何进制呢?我们通常使用 除基取余法 。
下面我们以十进制转二进制为例展示 除基取余法:
while(num > 0) //辗转取余
{
arr[n++] = num % 2 + '0';
num/=2;
}
然后是十进制转化为十六进制的代码:
#include<stdio.h>
int main()
{
int a,k=0;
scanf("%d",&a);//输入一个十进制整形数
char b[100];//创建字符数组存入转化后的十六进制数
if(a==0)
printf("0");
else{
while(a!=0)
{
if(a%16>=10)
b[k++] = a % 16 + 'A' - 10;//将超过9的余数转化成A,B,C,D,E,F
else
{
b[k++] = a % 16 + '0'; //将整形转化为字符型并存入数组
}
a = a / 16;
}
}
for(int i=k-1;i>=0;i--)//倒序输出
{
printf("%c",b[i]);
}
return 0;
}