以100这个十进制数转为16进制为例子来说明10进制到16进制的转换。
1. 计算100%16,得到的值4为对应16进制的最低位;
2. 计算100/16得6。
3. 然后对6%16=6。得到的值6为对应16进制的次低位
4. 计算6/16=0,为6时结束循环。
所以100对应的十六进制就是64。
下面给出一个例子程序:
#include<stdio.h>
#define N 8
void tran(int num) // 转换函数
{
int arr[N],i; // N的大小要保证余数都能存进去
for (i=0;i < N;i++)
{
arr[i]=num%16; // 循环上述给出的例子过程,把余数存进数组中
num=num/16;
if(num==0) break; // 为0就退出了
}
printf("转换为16进制数为: ");
for (;i>=0;i--) // arr[0]存的是对应16进制的最低位
switch (arr[i])
{
case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
case 15: printf("F");break;
default: printf("%d",arr[i]);
}
printf("\n");
}
int main()
{
int num;
printf("请输入要转换的十进制数:\n");
scanf("%d",&num);
tran(num);
return 0;
}
上述程序适当修改一番,就能变成10进制向任意进制的转换程序了。看明白后,自己改一改吧。
追问太好,终于等到你回答了,你真厉害,是老师吗?
基本能看懂,就是void tran(int num),这个不太懂,
void 有什么用,在书上看过但没搞明白
追答void在这里没有什么实际的意义,表示该函数无需返回值。
无需返回值的函数可以定义为void。
有些函数需要返回值来表示确定的含义,如
int max(int i, int j) { return (i < j) ? j : i ;}这样的,用返回值来表示参数中较大的值。
来自:求助得到的回答
本回答被提问者和网友采纳