代码如下:
#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");
}
程序运行结果:
扩展资料
C语言中,十进制转换十六进制,可以先输入十进制整数,然后去拼十六进制,十六进制由数字 0~9、字母 A~F 或 a~f(不区分大小写)组成,使用时必须以0x或0X(不区分大小写)开头,只需把二进制除以16得到余数去上面定义的hex[16]数组进行取值接可以得到转换的数字。
参考资料:百度百科-十六进制
%x %X就是以十六进制的形式输出一个整数,字母的大小写形式与x相同
追问return 0在程序表达的意思是
追答main函数返回值为0,不写的话也不会报错,但这是一个好习惯,所以最好写上。有的程序用main函数实现递归,这时,返回值就有必要了。有的编译器里,没有收到main返回的0,会给出警告
追问哦哦,谢谢!那还有别的方法吗?
追答上面的程序不是真正的转换,只是换个形式输出(因为你问的最简单的方法。。。),要是需要转换的话,我写一下代码,稍等。。
追问谢谢,如果可以能够加一下你的qq嘛!我才学c语言有很多的不懂,可以请教你吗?
追答可以加这个群,备注里说明一下:181471759。
#include <stdio.h>