思路:输入十进制数num,num对2/8/16取余,每一次的余数存放在arr[32]数组中,最后需要倒序输出数组的内容。
注意:十进制转换为十六进制时,要对每一次的余数进行判断,如果>9,则需要输出对应的大写字母A-E——10-15
int main()
{
int y = 0, num, x; //num为输入的十进制数字,x为目标进制类型
int arr[32] = { 0 }; //存放每一次余数的数组
printf("请输入你要转换的十进制数num和转的换的目标进制x:");
scanf("%d %d", &num, &x);
while (num != 0) //当num不等于0 时进入循环
{
y++;
arr[y] = num % x;
num = num / x;
if (arr[y] > 9)
{
arr[y] = 'A' + (arr[y] - 10); //对余数的判断 主要针对16进制
}
else
{
arr[y] = arr[y] + '0';
}
}
for (int i = y; i > 0; i--) //倒序输出数组
{
printf("%c", arr[i]);
}
system("pause");
return 0;
}
转载:https://blog.csdn.net/qq_41649694/article/details/101459595
查看评论