- 我们主用方法为:除基取余法
- 基:即为进制;当要转化为二进制时,基取2。
- 当然我这给的代码转化进制最大为16,
直接上代码
#include<stdio.h>
char a[20] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
int main()
{
int c[20];
int jz;
int n,i=0;
scanf("%d%d", &n, &jz);
do
{
c[i++] = n % jz;
n /= jz;
} while (n != 0);
for (i--; i >= 0; i--)
printf("%c", a[c[i]]);
return 0;
}
2.当然,还有以一种偷懒的方法,不过只适合十进制转化为八进制和十六进制。
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("八进制为%o十六进制为%x",a,a);
return 0;
}
当然了我们还可反过来,因为%o代表着八进制的输入输出;%x则为十六进制。