题目:
输入一个十进制数,运用数组将其转化为十六进制数
思路分析:
-
十进制转十六进制的算法:
-
将一个整数转化为由一个个字符组成的十六进制数
-
将一整数输入函数,新建一个空数组来存十六进制的每一个字符
-
新建一个数组用来存十六进制会用到的每一个字符“0123456789ABCDEF”
-
存入的字符是倒放入的,所以输出时要倒序输出
代码实现:
#include<stdio.h>
void dec2hexa(int n)
{
int i = 0, d = n;
int m = 0, t = 0;
char hexa[64];
char *hmap = "0123456789ABCDEF";
while(d > 0)
{
m = d % 16;
hexa[t] = hmap[m];
d = d / 16;
t++;
}
printf( "Hexa of %d is:0x",n) ;
for(i = t - 1; i >= 0; i--)
{
putchar(hexa[i]);
}
printf("\n");
}
int main()
{
int n = 0;
printf("Input a DECIMAL number:");
scanf("%d",&n);
dec2hexa(n);
return 0;
}
运行结果: