1. 计算100,得到的值4为对应16进制的最低位;
2. 计算100/16得6。
3. 然后对6=6。得到的值6为对应16进制的次低位
4. 计算6/16=0,为6时结束循环。
所以100对应的十六进制就是64。
下面给出一个例子程序:
#include
#define N 8
void tran(int num) // 转换函数
{
int arr[N],i; // N的大小要保证余数都能存进去
for (i=0;i < N;i++)
{
arr[i]=num; // 循环上述给出的例子过程,把余数存进数组中
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;
}
加载中,请稍候......