把十进制数除以16,保留余数部分。得到余数以后就不要再往下除得小数。
代码:
#include "stdio.h" int main()
{
int num=0;
int a[100];
int i=0;
int m=0;
int yushu;
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
printf("请输入一个十进制数:");
scanf("%d",&num); while(num>0) { yushu=num%16;
a[i++]=yushu;
num=num/16;
} printf("转化为十六进制的数为:0x"); for(i=i-1;i>=0;i--)//倒序输出 {m=a[i];
printf("%c",hex[m]); } printf("\n");
}
扩展资料:
十进制转十六进制
采余数定理分解,例如将487710转成十六进制:
4877÷16=304....13(D)
304÷16=19....0
19÷16=1....3
1÷16=0....1
这样就计到487710=130D16
参考资料来源:百度百科-十六进制
用十进制数整除以16,然后取余数,直到商为0则停止转换。余数可以是0~15中的某一个数,其中0~9不用改变,10~15则分别用A~F表示。最先得到的余数是最低位,最后得到的是最高位。
先转二进制
再把二进制转十六进制
你好